-
eclipse lombok插件安装_工具:IDEA必备的利器Lombok,减少代码冗余神器。
2020-11-29 14:01:59前语:不要为了读文章而读文章,一定要带着问题来读文章,勤思考。在此,建议大家为本公众号加“星标”。如文章写得好,望大家阅读后在右下边“在看”处点个赞...I/O流的关闭操作等等,这些样板代码既没有技术含量,...前语:不要为了读文章而读文章,一定要带着问题来读文章,勤思考。在此,建议大家为本公众号加“星标”。如文章写得好,望大家阅读后在右下边“在看”处点个赞,以示鼓励!
作者:LiWenD 来源:http://t.cn/EXhxRzV
以前的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString;异常处理;I/O流的关闭操作等等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok应运而生。
任何技术的出现都是为了解决某一类问题,如果在此基础上再建立奇技淫巧,不如回归Java本身,应该保持合理使用而不滥用。
Lombok的使用非常简单。
1)引入相应的maven包
<dependency> <groupId>org.projectlombokgroupId> <artifactId>lombokartifactId> <version>1.16.18version> <scope>providedscope>dependency>
Lombok的scope=provided,说明它只在编译阶段生效,不需要打入包中。事实正是如此,Lombok在编译期将带Lombok注解的Java文件正确编译为完整的Class文件。
2)添加IDE工具对Lombok的支持
IDEA中引入Lombok支持如下:点击File-- Settings设置界面,安装Lombok插件。
点击File-- Settings设置界面,开启 AnnocationProcessors。
开启该项是为了让Lombok注解在编译阶段起到作用。
Eclipse的Lombok插件安装可以自行百度,也比较简单,值得一提的是,由于Eclipse内置的编译器不是Oracle javac,而是eclipse自己实现的Eclipse Compiler for Java (ECJ).要让ECJ支持Lombok,需要在eclipse.ini配置文件中添加如下两项内容:
-Xbootclasspath/a:[lombok.jar所在路径]-javaagent:[lombok.jar所在路径]
3)Lombok实现原理
自从Java 6起,javac就支持“JSR 269 Pluggable Annotation Processing API”规范,只要程序实现了该API,就能在javac运行的时候得到调用。
Lombok就是一个实现了"JSR 269 API"的程序。在使用javac的过程中,它产生作用的具体流程如下:
javac对源代码进行分析,生成一棵抽象语法树(AST)
javac编译过程中调用实现了JSR 269的Lombok程序
此时Lombok就对第一步骤得到的AST进行处理,找到Lombok注解所在类对应的语法树(AST),然后修改该语法树(AST),增加Lombok注解定义的相应树节点
javac使用修改后的抽象语法树(AST)生成字节码文件
4) Lombok注解的使用
POJO类常用注解:@Getter/@Setter: 作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。可以设定访问权限及是否懒加载等。
package com.trace;import lombok.AccessLevel;import lombok.Getter;import lombok.Setter;/** * Created by Trace on 2018/5/19. * DESC: 测试类 */@SuppressWarnings("unused")public class TestClass { public static void main(String[] args) { } @Getter(value = AccessLevel.PUBLIC) @Setter(value = AccessLevel.PUBLIC) public static class Person { private String name; private int age; private boolean friendly; } public static class Animal { private String name; private int age; @Getter @Setter private boolean funny; } }
在Structure视图中,可以看到已经生成了getter/setter等方法。
编译后的代码如下:这也是传统Java编程需要编写的样板代码。
//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package com.trace;public class TestClass { public TestClass() { } public static void main(String[] args) { } public static class Animal { private String name; private int age; private boolean funny; public Animal() { } public boolean isFunny() { return this.funny; } public void setFunny(boolean funny) { this.funny = funny; } } public static class Person { private String name; private int age; private boolean friendly; public Person() { } public String getName() { return this.name; } public int getAge() { return this.age; } public boolean isFriendly() { return this.friendly; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public void setFriendly(boolean friendly) { this.friendly = friendly; } }}
@ToString:作用于类,覆盖默认的toString()方法,可以通过of属性限定显示某些字段,通过exclude属性排除某些字段。
@EqualsAndHashCode:作用于类,覆盖默认的equals和hashCode
@NonNull:主要作用于成员变量和参数中,标识不能为空,否则抛出空指针异常。
@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor:作用于类上,用于生成构造函数。有staticName、access等属性。
staticName属性一旦设定,将采用静态方法的方式生成实例,access属性可以限定访问权限。
@NoArgsConstructor:生成无参构造器;
@RequiredArgsConstructor:生成包含final和@NonNull注解的成员变量的构造器;
@AllArgsConstructor:生成全参构造器。
编译后结果:
public static class Person {
@NonNull
private String name;
private int age;
private boolean friendly;
public String toString() {
return "TestClass.Person(name=" + this.getName() + ", age=" + this.getAge() + ")";
}
@NonNull
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
public boolean isFriendly() {
return this.friendly;
}
public void setName(@NonNull String name) {
if(name == null) {
throw new NullPointerException("name");
} else {
this.name = name;
}
}
public void setAge(int age) {
this.age = age;
}
public void setFriendly(boolean friendly) {
this.friendly = friendly;
}
private Person() {
}
private static TestClass.Person of() {
return new TestClass.Person();
}
@ConstructorProperties({"name"})
Person(@NonNull String name) {
if(name == null) {
throw new NullPointerException("name");
} else {
this.name = name;
}
}
@ConstructorProperties({"name", "age", "friendly"})
public Person(@NonNull String name, int age, boolean friendly) {
if(name == null) {
throw new NullPointerException("name");
} else {
this.name = name;
this.age = age;
this.friendly = friendly;
}
}
}
@Data:作用于类上,是以下注解的集合:
@ToString @EqualsAndHashCode @Getter @Setter @RequiredArgsConstructor
@Builder:作用于类上,将类转变为建造者模式
@Log:作用于类上,生成日志变量。针对不同的日志实现产品,有不同的注解:
其他重要注解:
@Cleanup:自动关闭资源,针对实现了java.io.Closeable接口的对象有效,如:典型的IO流对象。
编译后结果如下:
是不是简洁了太多。
@SneakyThrows:可以对受检异常进行捕捉并抛出,可以改写上述的main方法如下。
@Synchronized:作用于方法级别,可以替换synchronize关键字或lock锁,用处不大。
最后,也欢迎各位读者入群来交流切磋技术,戳这里:咱们来一起抱团取暖,好吗?
---END---
热文推荐
用 IDEA 跟踪 Java 源码的技巧 | 内部资料
面试官:站点遇到攻击且无明显攻击特征,造成站点访问慢,nginx不断返回502等错误,你能给我分析一下吗?
面试题:jdk那些类的底层实现使用过位运算,并且给你印象最深?
给个在看
人气满满
-
文件路径动态修改 lombok_工具:IDEA必备的利器Lombok,减少代码冗余神器。
2021-01-06 20:47:49前语:不要为了读文章而读文章,一定要带着问题来读文章,勤思考。在此,建议大家为本公众号加“星标”。如文章写得好,望大家阅读后在右下边“在看”处点个赞...I/O流的关闭操作等等,这些样板代码既没有技术含量,...前语:不要为了读文章而读文章,一定要带着问题来读文章,勤思考。在此,建议大家为本公众号加“星标”。如文章写得好,望大家阅读后在右下边“在看”处点个赞,以示鼓励!
作者:LiWenD 来源:http://t.cn/EXhxRzV
以前的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString;异常处理;I/O流的关闭操作等等,这些样板代码既没有技术含量,又影响着代码的美观,Lombok应运而生。
任何技术的出现都是为了解决某一类问题,如果在此基础上再建立奇技淫巧,不如回归Java本身,应该保持合理使用而不滥用。
Lombok的使用非常简单。
1)引入相应的maven包
<dependency> <groupId>org.projectlombokgroupId> <artifactId>lombokartifactId> <version>1.16.18version> <scope>providedscope>dependency>
Lombok的scope=provided,说明它只在编译阶段生效,不需要打入包中。事实正是如此,Lombok在编译期将带Lombok注解的Java文件正确编译为完整的Class文件。
2)添加IDE工具对Lombok的支持
IDEA中引入Lombok支持如下:点击File-- Settings设置界面,安装Lombok插件。
点击File-- Settings设置界面,开启 AnnocationProcessors。
开启该项是为了让Lombok注解在编译阶段起到作用。
Eclipse的Lombok插件安装可以自行百度,也比较简单,值得一提的是,由于Eclipse内置的编译器不是Oracle javac,而是eclipse自己实现的Eclipse Compiler for Java (ECJ).要让ECJ支持Lombok,需要在eclipse.ini配置文件中添加如下两项内容:
-Xbootclasspath/a:[lombok.jar所在路径]-javaagent:[lombok.jar所在路径]
3)Lombok实现原理
自从Java 6起,javac就支持“JSR 269 Pluggable Annotation Processing API”规范,只要程序实现了该API,就能在javac运行的时候得到调用。
Lombok就是一个实现了"JSR 269 API"的程序。在使用javac的过程中,它产生作用的具体流程如下:
javac对源代码进行分析,生成一棵抽象语法树(AST)
javac编译过程中调用实现了JSR 269的Lombok程序
此时Lombok就对第一步骤得到的AST进行处理,找到Lombok注解所在类对应的语法树(AST),然后修改该语法树(AST),增加Lombok注解定义的相应树节点
javac使用修改后的抽象语法树(AST)生成字节码文件
4) Lombok注解的使用
POJO类常用注解:@Getter/@Setter: 作用类上,生成所有成员变量的getter/setter方法;作用于成员变量上,生成该成员变量的getter/setter方法。可以设定访问权限及是否懒加载等。
package com.trace;import lombok.AccessLevel;import lombok.Getter;import lombok.Setter;/** * Created by Trace on 2018/5/19. * DESC: 测试类 */@SuppressWarnings("unused")public class TestClass { public static void main(String[] args) { } @Getter(value = AccessLevel.PUBLIC) @Setter(value = AccessLevel.PUBLIC) public static class Person { private String name; private int age; private boolean friendly; } public static class Animal { private String name; private int age; @Getter @Setter private boolean funny; } }
在Structure视图中,可以看到已经生成了getter/setter等方法。
编译后的代码如下:这也是传统Java编程需要编写的样板代码。
//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package com.trace;public class TestClass { public TestClass() { } public static void main(String[] args) { } public static class Animal { private String name; private int age; private boolean funny; public Animal() { } public boolean isFunny() { return this.funny; } public void setFunny(boolean funny) { this.funny = funny; } } public static class Person { private String name; private int age; private boolean friendly; public Person() { } public String getName() { return this.name; } public int getAge() { return this.age; } public boolean isFriendly() { return this.friendly; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public void setFriendly(boolean friendly) { this.friendly = friendly; } }}
@ToString:作用于类,覆盖默认的toString()方法,可以通过of属性限定显示某些字段,通过exclude属性排除某些字段。
@EqualsAndHashCode:作用于类,覆盖默认的equals和hashCode
@NonNull:主要作用于成员变量和参数中,标识不能为空,否则抛出空指针异常。
@NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor:作用于类上,用于生成构造函数。有staticName、access等属性。
staticName属性一旦设定,将采用静态方法的方式生成实例,access属性可以限定访问权限。
@NoArgsConstructor:生成无参构造器;
@RequiredArgsConstructor:生成包含final和@NonNull注解的成员变量的构造器;
@AllArgsConstructor:生成全参构造器。
编译后结果:
public static class Person {
@NonNull
private String name;
private int age;
private boolean friendly;
public String toString() {
return "TestClass.Person(name=" + this.getName() + ", age=" + this.getAge() + ")";
}
@NonNull
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
public boolean isFriendly() {
return this.friendly;
}
public void setName(@NonNull String name) {
if(name == null) {
throw new NullPointerException("name");
} else {
this.name = name;
}
}
public void setAge(int age) {
this.age = age;
}
public void setFriendly(boolean friendly) {
this.friendly = friendly;
}
private Person() {
}
private static TestClass.Person of() {
return new TestClass.Person();
}
@ConstructorProperties({"name"})
Person(@NonNull String name) {
if(name == null) {
throw new NullPointerException("name");
} else {
this.name = name;
}
}
@ConstructorProperties({"name", "age", "friendly"})
public Person(@NonNull String name, int age, boolean friendly) {
if(name == null) {
throw new NullPointerException("name");
} else {
this.name = name;
this.age = age;
this.friendly = friendly;
}
}
}
@Data:作用于类上,是以下注解的集合:
@ToString @EqualsAndHashCode @Getter @Setter @RequiredArgsConstructor
@Builder:作用于类上,将类转变为建造者模式
@Log:作用于类上,生成日志变量。针对不同的日志实现产品,有不同的注解:
其他重要注解:
@Cleanup:自动关闭资源,针对实现了java.io.Closeable接口的对象有效,如:典型的IO流对象。
编译后结果如下:
是不是简洁了太多。
@SneakyThrows:可以对受检异常进行捕捉并抛出,可以改写上述的main方法如下。
@Synchronized:作用于方法级别,可以替换synchronize关键字或lock锁,用处不大。
最后,也欢迎各位读者入群来交流切磋技术,戳这里:咱们来一起抱团取暖,好吗?
---END---
热文推荐
用 IDEA 跟踪 Java 源码的技巧 | 内部资料
面试官:站点遇到攻击且无明显攻击特征,造成站点访问慢,nginx不断返回502等错误,你能给我分析一下吗?
面试题:jdk那些类的底层实现使用过位运算,并且给你印象最深?
给个在看
人气满满
-
模块打包剔除冗余代码
2016-08-19 13:15:17在我们打包之后,有很多模块导出的代码,我们可能根本没有用到过,这些冗余代码也跟着一起打包,这不是赤裸裸的浪费带宽嘛。还有我们使用的框架,里面所有的模块我们都用到了?不见得吧。现在,又出现了tree-我们知道,前端页面越来越多,导致我们的js,css文件越来越多。
在请求的时候,就会占有很多带宽。
前端er们就发明了打包工具。
把所有的js文件打包成一个文件,这样减少了http的请求数。
但是,协作开发模式。在我们打包之后,有很多模块导出的代码,我们可能根本没有用到过,这些冗余代码也跟着一起打包,这不是赤裸裸的浪费带宽嘛。
还有我们使用的框架,里面所有的模块我们都用到了?不见得吧。
现在,又出现了
tree-shaking
技术。在打包之前,消除没有被调用过的冗余代码。
前端开发再也不用会臃肿喽。
1.rollup.js
这只框架就可以做到。
详细了解点这里吧:
http://www.cnblogs.com/vajoy/p/5518442.html2.HTTP/2 vs 打包
http/1 每个请求占用1个tcp连接。
http/2 所有请求一起占一个连接,完全多路复用。大家并行一起下载,还不用产生多余的tcp连接,是不是就不需要打包了?加载多个模块不再是一个严重的性能问题。一些人认为模块打包不再需要了。这当然是有可能的。
-
Java代码辅助效率工具Lombok(注解,自动生成代码)
2020-05-21 20:31:23Lombok是一款小巧的代码生成工具。Lombok优点:注解驱动,在编译时自动为属性生成构造器getter/setter、equals、hashcode、toString,...让代码变得简洁,减少大量冗余代码;修改属性对应方法自动调整,提高开发效率;目录
Lombok介绍
Lombok是一款小巧的代码生成工具。官方网址:http://projectlombok.org/
Lombok类似于一种IDE插件,在使用时Eclipse或IntelliJ IDEA都需要安装相应的插件,在编译器编译时通过操作AST改变字节码生成。它不像spring的依赖注入或者mybatis的ORM一样是运行时的特性,而是编译时的特性。
Lombok本质上是一个实现了“JSR 269 API”的程序。在使用javac的过程中,它产生作用的流程如下:
- javac对源代码进行分析,生成了一棵抽象语法树(AST)
- 运行过程中调用实现了“JSR 269 API”的Lombok程序
- 此时Lombok就对第一步骤得到的AST进行处理,找到@Data注解所在类对应的语法树(AST),然后修改该语法树(AST),增加getter和setter方法定义的相应树节点
- javac使用修改后的抽象语法树(AST)生成字节码文件,即给class增加新的节点(代码块)
Lombok优点:
- 注解驱动,在编译时自动为属性生成构造器getter/setter、equals、hashcode、toString,Constructor等方法代码;
- 让代码变得简洁,减少大量冗余代码;
- 修改属性对应方法自动调整,提高开发效率;
Lombok缺点:
- 降低了源代码的完整性;
安装插件
IntelliJ IDEA
查找插件 lombok plugin 安装即可。
Eclipse
java -jar lombok-1.16.20.jar
弹窗弹窗点击Specify location 选中eclipse安装路径 点击Install:Maven工程
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.20</version> <scope>provided</scope> </dependency>
使用lombok前
public class Order { private String payId; private String orderId; private int payType; public Order(String payId, String orderId, int payType) { this.payId = payId; this.orderId = orderId; this.payType = payType; } public String getPayId() { return payId; } public void setPayId(String payId) { this.payId = payId; } public String getOrderId() { return orderId; } public void setOrderId(String orderId) { this.orderId = orderId; } public int getPayType() { return payType; } public void setPayType(int payType) { this.payType = payType; } }
使用lombok后
@Data @NoArgsConstructor @AllArgsConstructor public class Order { private String payId; private String orderId; private int payType; }
常用注解
@Getter 生成成员变量的getter方法
@Setter 生成成员变量的getter方法
@NoArgsConstructor 生成无参构造器
@RequiredArgsConstructor 生成包含final和@NonNull注解的成员变量的构造器
@EqualsAndHashCode 生成覆盖默认的equals和hashCode
@ToString 生成覆盖默认的toString()方法
@Data 以上注解的集合:@ToString @EqualsAndHashCode @Getter @Setter @NoArgsConstructor
@AllArgsConstructor 生成全参构造器
@Log4j 生成log4j日志变量
@NonNull 作用于成员变量和参数中,标识不能为空,否则抛出空指针异常
@Cleanup 自动关闭资源
@SneakyThrows 检异常进行捕捉并抛出
@Synchronized 替换synchronize关键字或lock锁 -
冗余代码都走开——前端模块打包利器 Rollup.js 入门
2019-10-08 01:27:39之前翻译过一篇文章,介绍了通过 ES2015 的解构赋值语法引入模块,可以让打包工具(browserify)最终编译出来的代码量最小化。 殊不知在 webpack 1.X 版本是无法利用该特性来避免引入冗余模块代码的,导致打出来的 ... -
代码精简工具lombok
2018-05-10 15:42:00Lombok是一种通过注解的方式减少JAVA实体类中大量冗余代码,诸如get、set以及构造方法等的Java库 一、安装Lombok 步骤一 项目引入lombok插件 1 - 非maven依赖托管项目再lib文件夹中添加lombok.jar包2 - maven项目... -
Java界的神器-使用Lombok来消除你的冗余代码量
2016-06-19 22:36:25Lombok他是一个通过注解方式来减少你的POJO类的getter和setter等方法的一个工具,我这里演示的在Android Studio中的使用方式,当然如果你使用的是idea那么这方法也通用 -
代码语法错误分析工具pclint8.0
2010-06-29 07:00:09它进行程序的全局分析,能识别没有被适当检验的数组下标,报告未被初始化的变量,警告使用空指针,冗余的代码,等等。软件除错是软件项目开发成本和延误的主要因素。PClint能够帮你在程序动态测试之前发现编码错误。... -
gogoAST:最简单的工具,可以解析ast上的转换生成代码-源码
2021-01-31 02:44:15大量减少代码量-如果您需要使用AST对代码进行升级,改造,分析,快用gogoAST帮你扩展繁琐冗余的代码,专注于你的核心逻辑。不需要遍历,像剥洋葱一样一层一层的对比,操作,构造ast异步。 降低理解成本-甚至不需要... -
APP开发实战165-利用工具减少APP大小
2017-04-05 21:36:5226.1.4 利用工具减少APP大小 1 使用Lint扫描可以发现冗余的代码和资源文件,然后手动删除。 2 在APP的build.gradle文件中,进行以下设置: buildTypes { release { //开启混淆功能 minifyEnabled true /... -
iOS使用OCLint做静态代码分析
2020-01-16 13:37:09iOS使用OCLint做静态代码分析 为什么要做代码检查?...减少代码冗余 初识OCLint OCLint是一种静态代码分析工具,用于通过检查C,C ++和Objective-C代码并查找潜在问题来提高质量并减少缺陷。... -
Cobertura代码覆盖率测试
2016-04-28 23:39:27优化代码结构,减少冗余代码;提高测试质量,提升整体软件质量;提高测试人员测试分析能力,提高测试设计质量;Cobertura 是一种开源测试工具,它通过检测基本的代码,并观察在测试包运行时执行了哪些代码以及哪些... -
JDBC工具类——JdbcUtils
2020-11-27 20:41:22我的web一、最终工具类的组成1、类加载时加载驱动2、dbcp连接池:dbcp.properties3、ThreadLocal控制事务4、连接池提高资源利用率5、rowmapper封装减少代码冗余6、template封装减少dao层代码冗余二、JDBC工具类的... -
常用的Java Util工具类
2019-09-05 22:47:43常用的Java Util工具类 #java.common.util-api-1.8 业界有句话:不重复造轮子。 使用工具类可以减少日常繁琐的编码,减少...作为程序员,应该多善于利用工具减少代码冗余,美化自己的代码。 git地址:https:... -
使用stylelint对CSS/Sass做代码审查
2017-02-23 10:41:00简介 什么是代码审查 代码审查是一个检查代码是否符合编程规范...对样式进行审查的原因有很多,比如它可以维护代码的一致性,解析代码中的错误,减少冗余代码等等。 下面让我们看几个示例: .no-space-after-c... -
代码规范利器-CheckStyle
2020-06-04 15:57:38本期内容分为五个部分,阅读时长预估7分钟: 使用背景 ...编写整洁优雅的代码,减轻CodeReview工作量,减少后续不断重构糟糕冗余的代码,自动化代码规范的检查过程? 它就是CheckStyle! 什么是CheckSty -
jdbc自建工具类
2020-07-29 23:53:03白话文,就是把一些常用的代码进行封装,无论是调用也好,还是修改也好都方便,提高代码复用性的同时,减少代码的代码冗余 冗rǒng。这个字是这样读的,我说咋打不出来勒。 本次,只介绍前两部分 二、如何自建... -
数据库工具类
2019-07-09 16:32:33通过工具类的编写,减少jdbc的代码量,减少数据的冗余 jdbc.properties driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/test?useSSL=false user=root pwd=li1234 DBUtils.java public class ... -
使用 lombok 简化 Java 代码
2017-09-15 05:44:33lombok 是一个第三方工具,提供了一些注解功能,可以帮助我们消除冗余、臃肿的 Java 代码,比如 POJO 的 getter/setter 方法、构造方法、hashcode 方法等。lombok 在编译时根据注解生成具体的代码,在虚拟机中运行时... -
JDBCUtils工具类编写
2020-10-05 20:37:40提示: 大佬可以自动略过哦 文章目录一、JDBCUtils是什么?... 连接数据库,对代码的封装减少代码的冗余 二、使用步骤 1.jdbc.properties编写 提示:导入jar包(mysql-connector-java-5.xxxx-bin.jar) 代码如下(示 -
java时间工具类
2019-01-19 23:14:00一个良好的工具类不仅可以减少代码冗余,还能促进业务处理,加快进度。 /** * @author: lxw * @Date: 2018/12/25 14:36 * @Description: 时间工具类 */ public class DateUtils { /** * ... -
Android——实现ImageLoader工具类(附带修改圆形头像)
2017-05-17 16:36:26不用每次都调用那么多代码,减少冗余,可以自己定义一个工具类来多次调用即可。ImageLoader工具类public class ImageLoaderUtils { private static Builder icf; private static ImageLoader imageloader; //I -
封装BaseDao工具类
2019-02-26 19:49:05使用BaseDao可以将重复的操作整合,如对数据的增删改查,减少代码的冗余。 增删改封装一为个方法,查询封装一个方法,查询个数封装一个方法(方便实现分页查询功能)。 可以使其它Dao继承BaseDao而使用。 代码: ... -
手动封装一个简单JDBC工具类
2019-11-28 23:56:01一、为什么要封装Jdbc工具类 使用Jdbc连接数据库时,总会有一些代码是必不可少的,如加载驱动、获取连接、释放资源等。为了提高重用性,可以将他们封装在一个工具类中。...5:rowmapper封装 减少代码冗余... -
使用HuTool工具二次封装下载Excel模版、上传excel数据、下载excel数据
2019-10-12 14:19:03好处:利用java反射机制,一定程度上减少代码的冗余量。 代码讲解: java操作Excel数据是为了将Excel表的数据与我们的javabean一一对应起来,hutool这个工具包确实为我们提供了解决方案: excelReader.addHead.... -
javaweb 连接数据库使用封装工具类
2020-08-13 21:47:46在代码徳开发过程中使用封装工具类,可以明显减少代码徳数量,避免代码冗余; 下面是我的一个例子: 使用简单的封装类:JDBCUtils package com.alex.util; import java.io.FileInputStream; import java.sql....
-
当米友遇到同行(二)
-
ios快照测试用例期望:ios快照测试用例的预期匹配器-源码
-
华为1+X——网络系统建设与运维(中级)
-
为什么应该用模块取代C/C++中的头文件?
-
MySQL NDB Cluster 负载均衡和高可用集群
-
Day02 Java的特性、优势等
-
154. 寻找旋转排序数组中的最小值 II
-
火车购票
-
docker.rar
-
WEB应用安全问题
-
基于Qt的LibVLC开发教程
-
rog魔霸5plus怎么样 测评值得买吗?
-
零基础一小时极简以太坊智能合约开发环境搭建并开发部署
-
去年净亏3.79亿欧元/全线业务下滑,佛吉亚遭遇转型之困
-
敏捷开发智慧敏捷系列
-
使用 Linux 平台充当 Router 路由器
-
应云而生,幽灵的威胁 - 云原生应用交付与运维的思考
-
DeepText2Go:使用深度语义文本表示法改善大规模蛋白质功能的预测
-
sql-to-do-list-源码
-
MySQL 高可用(DRBD + heartbeat)