Lombok
Lombok的安装分两部分:Idea插件的安装和maven中pom文件的导入
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.10</version>
</dependency>
@Data最常用的注解之一。注解在类上,提供该类所有属性的getter/setter方法,还提供了equals、canEqual、hashCode、toString方法。
@Setter
作用于属性上,为该属性提供setter方法; 作用与类上,为该类所有的属性提供setter方法, 都提供默认构造方法。
public class Demo {
private int id;
@Setter
private String remark;
}
@Setter
public class Demo {
private int id;
private String remark;
}
@Log4j
作用于类上,为该类提供一个属性名为log的log4j日志对象。
@Log4j
public class Demo {
}
该属性一般使用于Controller、Service等业务处理类上。与此注解相同的还有@Log4j2,顾名思义,针对Log4j2。
@AllArgsConstructor
作用于类上,为该类提供一个包含全部参的构造方法,注意此时默认构造方法不会提供。
@NoArgsConstructor
作用于类上,提供一个无参的构造方法。可以和@AllArgsConstructor同时使用,此时会生成两个构造方法:无参构造方法和全参构造方法。
@NonNull
作用于属性上,提供关于此参数的非空检查,如果参数为空,则抛出空指针异常。
使用方法:
public class Demo {
@NonNull
private int id;
private String remark;
}
@ToString
作用于类上,生成包含所有参数的toString方法。见@Data中toString方法。
@Value
作用于类上,会生成全参数的构造方法、getter方法、equals、hashCode、toString方法。与@Data相比多了全参构造方法,少了默认构造方法、setter方法和canEqual方法。
该注解需要注意的是:会将字段添加上final修饰,个人感觉此处有些失控,不太建议使用。
Slf4j
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<!-- https://mvnrepository.com/artifact/ch.qos.logback/logback-classic -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.2.0</version>
<scope>test</scope>
</dependency>
很多篇教程都是复制,依赖不全,导致我总是运行不了。教程教程,就是给人学习的,你不能默认你的读者掌握了其他相关的东西。
好了,在pom中添加上面的所有依赖,很多教程里都只说添加lombok依赖就行了,其实不然。总共还需要slf4j以及它的实现,这里我选择了logback,其他的实现也是可以的。除此之外,还需要安装一个lombok插件,只针对IDEA,其他的IDE我不了解,也不知道具体需不需要这个插件。
如果不写下面这段代码,并且想用log就使用@Slf4j,是用作日志输出的,一般会在项目每个类的开头加入该注解,
private final Logger logger = LoggerFactory.getLogger(当前类名.class);
就是两种方式,二选一即可:
//@Slf4j
@Component
public class MinioUtil {
// 用@Slf4j就可以直接
// log.info("上传文件成功url :[{}], urlHost :[{}]", url, urlHost);
private final Logger logger = LoggerFactory.getLogger(MinioUtil.class);