一般情况下我们使用log4j或者slf4j定义一个log会这样写:private static final Logger log = Logger.getLogger(getClass());
今天在开源社区看到一种写法更为简洁
在class上引入注解@Slf4j即可直接使用.
如:
@Slf4j
public class SectionVO {
public SectionVO() {
log.info("I'm sectionVO : {}", toString());
}
}
反编译SectionVO.class发现自动生成了
private static final Logger log = LoggerFactory.getLogger(SectionVO.class);
这个就很方便了.
那其实@Slf4j这个注解来自于lombok这个包,
仔细研究发现这个包还提供另外一些非常实用,可以大大简化代码的注解
比如 :
@Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
@Setter:注解在属性上;为属性提供 setting 方法
@Getter:注解在属性上;为属性提供 getting 方法
@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法
@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法
……
更多用法可以参考官方文档 https://projectlombok.org/features/index.html
这是Maven仓库地址:http://mvnrepository.com/artifact/org.projectlombok/lombok
官网主页上还有一个视频简介也演示的比较详细:https://projectlombok.org/
注:如果使用Idea,低版本可能不支持lombok,需要安装lombok插件,直接在Plugins里面搜索lombok安装就好