Idea使用lombok的一些坑

Idea使用lombok的一些坑

起源

  前一段时间公司项目需要解析xml文件,然后用的dom4j,但是有人推荐我使用jaxb进行xml和java Bean的转换,于是自己搭建在idea搭建一个工程测试xml解析的测试应用,不过在使用idea集成lombok包的时候确实触了很多雷,以此篇记录一下:

1.引入lombok依赖
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.16.18</version>
			<scope>provided</scope>
		</dependency>
2.为idea加入lombok插件
tips : 一定要使用比idea版本低的lombok版本
  • 使用idea自带插件库安装
    进入File–>Settings–>Plugins,搜索安装lombok插件即可
  • 使用zip方式安装
    在idea plugin官网下载zip包,lombok-plugin
3.设置Annotation Processors
  • 进入Settings–>Build,Excecution*–>Compiler–>Annotation Processors
  • 勾选 Enabled annotation processing
关于lombok中注解的常用用法和解释
val : 和 scala 中 val 同名, 可以在运行时确定类型;
  • @NonNull : 注解在参数上, 如果该类参数为 null , 就会报出异常, throw new NullPointException(参数名)
  • @Cleanup : 注释在引用变量前, 自动回收资源 默认调用 close() 方法
  • @Getter/@Setter : 注解在类上, 为类提供读写属性
  • @Getter(lazy=true) :
  • @ToString : 注解在类上, 为类提供 toString() 方法
  • @EqualsAndHashCode : 注解在类上, 为类提供 equals() 和 hashCode() 方法
  • @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor : 注解在类上, 为类提供无参,有指定必须参数, 全参构造函数
  • @Data : 注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法
  • @Builder : 注解在类上, 为类提供一个内部的 Builder
  • @SneakThrows :
  • @Synchronized : 注解在方法上, 为方法提供同步锁
  • @Log4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象
  • @Slf4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象
JAXB(Java Architecture for XML Binding)
  • JAXBContext类,是应用的入口,用于管理XML/Java绑定信息。
  • Marshaller接口,将Java对象序列化为XML数据。
  • Unmarshaller接口,将XML数据反序列化为Java对象。
  • @XmlType,将Java类或枚举类型映射到XML模式类型
  • @XmlAccessorType(XmlAccessType.FIELD) ,控制字段或属性的序列化。FIELD表示JAXB将自动绑定Java类中的每个非静态的(static)、非瞬态的(由@XmlTransient标 注)字段到XML。其他值还有XmlAccessType.PROPERTY和XmlAccessType.NONE。
  • @XmlAccessorOrder,控制JAXB 绑定类中属性和字段的排序。
  • @XmlJavaTypeAdapter,使用定制的适配器(即扩展抽象类XmlAdapter并覆盖marshal()和unmarshal()方法),以序列化Java类为XML。
  • @XmlElementWrapper ,对于数组或集合(即包含多个元素的成员变量),生成一个包装该数组或集合的XML元素(称为包装器)。
  • @XmlRootElement,将Java类或枚举类型映射到XML元素。
  • @XmlElement,将Java类的一个属性映射到与属性同名的一个XML元素。
  • @XmlAttribute,将Java类的一个属性映射到与属性同名的一个XML属性。

部分代码及注释引用于:
作者:意识流丶

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值