slf4j
slf4j只是一个日志的标准框架,并不是日志系统的标准实现。它主要是
- 提供日志接口
- 提供获取日志对象的方法
- 所以以上只是借助slf4j稍微优化了以下log4j的实现,而且log4就并不能直接实现slf4j,所以还借助了slf4j-log4j12进行桥接来实现slf4j。
此外,其他的log4j2和logback也是类似,需要整合不同的包来实现,这里在网上看到了资料就也记录一下吧
-
slf4j与log4j整合导入的jar包为 :slf4j-api.jar slf4j-log4j12.jar log4j.jar
-
slf4j与log4j2整合导入的jar包为:slf4j-api.jar log4j-slf4j-impl.jar log4j-api.jar log4j-core.jar
-
slf4j与logback整合导入的jar包为:slf4j-api.jar logback-core.jar logback-classic.jar
lombok
提供了一些注解来简化java代码
官网:http://projectlombok.org/
查看lombok所有api:https://projectlombok.org/api/overview-summary.html
几个常用的 lombok 注解:
注解 | 作用 |
---|---|
@Data | 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法 |
@Setter | 注解在属性上;为属性提供 setting 方法 |
@Getter | 注解在属性上;为属性提供 getting 方法 |
@SneakyThrows | 无需在签名处显式抛出异常 |
@Log4j | 注解在类上;为类提供一个 属性名为log 的 log4j 日志对像 |
@Slf4j | 同上 |
@NoArgsConstructor | 注解在类上;为类提供一个无参的构造方法 |
@AllArgsConstructor | 注解在类上;为类提供一个全参的构造方法 |
@NonNull | 如果该注解用在一个参数生,lombok将在方法/构造函数主体的开头插入一个空检查,抛出一个NullPointerException,并将该参数的名称作为异常的message。如果将这个注解用在一个字段上,那么任何给这个字段赋值的方法都会进行null检查。 |
@ToString | 为对象生成toString方法,默认将所有的字段包含在内。callSuper 参数是否调用父类方法,exclude参数去除不需要的字段。 |
@EqualsAndHashCode | 生成equals方法和hashCode方法。callSuper 参数是否调用父类方法,exclude参数去除不需要的字段。 |
@Cleanup | 该注释可以用来保证分配的资源被释放。生成try、finally代码,在finally块中释放资源。 |
@Synchronized | 同步方法,生成一个私有锁。 |
@SneakyThrows | 为需要处理的异常增加了try、catch语句 |
@Value | 这个注解用在 类 上,会生成含所有参数的构造方法,get 方法,此外还提供了equals、hashCode、toString 方法,注意没有set |
@RequiredArgsConstructor | 该注解使用在类上,使用类中所有带有 @NonNull 注解的或者带有 final 修饰的成员变量生成对应的构造方法。 |
@Builder | 使用私有构造函数生成一个名为TBuilder的内部类,创建一个构造器。 |
@Delegate | 该注解已被遗弃 |
@Generated | Lombok最终会自动将这个注释添加到所有生成的构造函数、方法、字段和类型中。用户无需使用这个注解 |
@Singular | 与@Builder一起使用单一注释在构建器中为集合创建单个元素“add”方法。 |
@Var | 将字段变为var类型,并推断它的类型。变量,可读可写 |
@Val | 将字段变为var类型,并推断它的类型。final类型,常量 |
还有一些Log注解 | 使lombok生成一个日志字段 |
lombok.experimental包中的注解 | 一些实验性的注解,不稳定,可能会有错误,以后可能会删除,不建议使用 |