Lombok

javax validation api not working for pojo validation

纵然是瞬间 提交于 2020-06-01 05:11:10
问题 I have a POJO class where the class variables are getting injected by @Value annotation. I am trying to validate my class variables using javax validation api & so I have tried @NotNull , @NotEmpty and @NotBlank , but all of them seem not to be validating or throwing any kind of exception even when a blank/null value is present in the application.yml file. Any idea as to how can I validate my POJO here using the javax validation api? PS: I am using lombok to generate my getter/setter. Below

faster way to create object lombok builder vs manually declaration

☆樱花仙子☆ 提交于 2020-05-15 08:04:29
问题 Between these 3 way to create an object, which one is the faster in time of execution ? Amount.builder().categoryCode("A").coveredAmount(new BigDecimal(100)).build(); or Amount cva1 = new Amount(); cva1.setCoveredAmount(new BigDecimal(100)); cva1.setCategoryCode("A"); or Amount cva1 = new Amount(new Bigdecimal(100), "A"); And the number of fields can be made difference ? 回答1: Beyond the performance comparison (peanuts btw...) you should not use a object-creation strategy based on his

Difficulty extending Lombok

℡╲_俬逩灬. 提交于 2020-05-15 06:46:38
问题 I want to create an annotation handler to extend the Java language. However I can't do this easily, because of the SCL files. I wanted to know if the Lombok developers made it this hard on purpose. If I try extending JavacAnnotationHandler, it can't find it in lombok.jar because the name is JavacAnnotationHandler.SCL.Lombok. I cloned the GitHub repository but I keep getting errors with duplicate classes in the resources.after and resources.before package and Java 12 syntax. I am using lombok

Lombok getter/setter vs Java 14 record

不羁岁月 提交于 2020-05-12 11:39:12
问题 I love project Lombok but in these days I'm reading and trying some of the new features of java 14. Inside the new capability, there is the record keyword that allows creating a class with already built-in the following functionality: constructor, private final fields, accessors, equals/hashCode, getters, toString methods. Now my question is: is better to rely on the feature of Lombok or should we start using the record functionality: Is better to use this: record Person (String name, String

Use lombok with @XmlElement

浪子不回头ぞ 提交于 2020-05-10 04:06:57
问题 How can I use Lombok in conjunction with my @XmlElement tags so that I can unmarshall the object? I have about 20 properties, so I'm looking to not write an explicit getter and setter for each with the XmlElement tags on the setters. 回答1: This gets the job done: @Data @XmlRootElement(name = "root") @XmlAccessorType(XmlAccessType.FIELD) // UPDATE: Need this or else exception public class Data { @XmlElement(name = "test") public double testData; } 来源: https://stackoverflow.com/questions

SpringBoot整合WebSocket

独自空忆成欢 提交于 2020-05-08 16:00:47
一、WebSocket概述 Http协议是一种基于请求/响应的应用层协议,工作原理是客户端(浏览器)与服务端建立TCP连接->客户端向服务端发送http请求报文->服务端收到请求报文进行处理返回一个响应报文->释放TCP连接->浏览器解析响应报文进行渲染。整个过程中都是由客户端发起的,服务端被动反应。如果我们需要实时获取服务器数据,可以通过ajax轮询来实现,不停的进行请求/响应,不停的建立TCP连接,这就造成的资源的极大浪费,而且做不到服务端向客户端发送信息。 由此诞生了websocket协议,最大的特点就是服务端可以主动向客户端发送信息,客户端也可主动向服务端发送信息,是一个双向平等的协议。工作原理是首先使用http建立一个TCP连接并告诉服务器将http协议升级为websocket协议此时就建立了一个持久连接->此时如果服务器由信息输出则直接传输给客户端,客户端不再询问知道客户端关闭连接为止。 二、SpringBoot整合WebSocket 1、导入pom.xml依赖 < dependency >    < groupId > org.springframework.boot </ groupId >    < artifactId > spring-boot-starter-websocket </ artifactId > </ dependency > 2

MapStruct 代替BeanUtil

冷暖自知 提交于 2020-05-08 15:23:56
这篇博文不错: https://www.cnblogs.com/tanoak/articles/10302299.html 1.pom.xml配置 < dependency > < groupId > org.mapstruct </ groupId > < artifactId > mapstruct-jdk8 </ artifactId > < version > 1.2.0.Final </ version > </ dependency > < plugin > < groupId > org.apache.maven.plugins </ groupId > < artifactId > maven-compiler-plugin </ artifactId > < version > 3.5.1 </ version > < configuration > < source > 1.8 </ source > < target > 1.8 </ target > < annotationProcessorPaths > < path > < groupId > org.mapstruct </ groupId > < artifactId > mapstruct-processor </ artifactId > < version > 1.2.0.Final </

eclipse 使用lombok 出现的问题

我与影子孤独终老i 提交于 2020-05-08 07:42:39
最近在学习spring boot的时候遇到了一个注解@Data,使用这个注解可以免去手动重写属性的@getter @setter 方法以及@toString()方法等等,甚是方便。 在看视频学校的时候使用的是Idea,使用的时候只需在 idea编译器中在线安装lombok插件,然后引入lombok.jar的依赖即可。但是换过来到eclipse的时候去出现了使用@Data,但是在使用的时候去无效的情况。这是因为eclipse 没有像idea那么方便,可以直接在环境中在线安装lombok插件。eclipse需要在线下安装lombok插件,主要步骤如下: 1 下载lombok.jar lombok.jar 包的下载路径为:https://projectlombok.org/download 2 第二步可以使用手动配置的方式,也可以使用以下的方式: 双击lombok.jar,进入lombok的安装环境,如下图: 这时会出现找不到IDE的警告,这时不用管这句话,点击弹出框的specify location 选择你的eclipse 的安装路径,选到eclipse.exe这一级即可,然后点击Install/Update,最后出现这个弹框,就说明你离成功已经很近了。 关掉弹窗,去到你的eclipse安装路径下的eclipse.ini查看一下,是否多了一句 -javaagent:F:\eclipse

idea 安装lombok 插件过程

寵の児 提交于 2020-05-08 07:42:06
一、作用 Lombok是一个可以通过简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 Java 代码的工具,bean,entity等类,绝大部分数据类类中都需要get、set、toString、equals和hashCode方法,虽然idea和eclipse开发环境下都有自动生成的快捷方式,但自动生成这些代码后,如果bean中的属性一旦有修改、删除或增加时,需要重新生成或删除get/set等方法,给代码维护增加负担。而使用了lombok则不一样,使用了lombok的注解(@Setter,@Getter,@ToString,@RequiredArgsConstructor,@EqualsAndHashCode或@Data)之后,就不需要编写或生成get/set等方法,很大程度上减少了代码量,而且减少了代码维护的负担。lombok在编译生成的字节码文件中会帮我们生成这些方法,这就是lombok的神奇作用,去掉bean中get、set、toString、equals和hashCode等方法的代码,使你的代码看起来更加简洁,写起来也更加方便。 二、操作如下: 第一步: 添加jar包或maven依赖 < dependencies > < dependency > < groupId > org.projectlombok </ groupId > < artifactId >

来自lombok的注解(解决idea中的找不到get,set方法,找不到log的问题)

我与影子孤独终老i 提交于 2020-05-08 06:25:24
  今天看代码,发现idea报错,仔细一看调用的get,set方法bean中都没有,但是运行起来却没有问题,这个让我很疑惑。后来发现在类上有一个以前没见过的注解@Data,大概就是因为有他的原因。这个注解来自于lombok。   我们使用lombok的注解时,例如使用@Data,我们不需要再代码中再显示的写get,set方法等,当我们使用的时候可以直接使用注解给我们生成的get,set方法,但是此时idea是不知道这个注解的作用的,会误报没有这个方法,所以你会看到idea疯了一样的到处报错。为了解决这个问题,我们需要在idea中安装插件lombok plugin(直接在idea的prefrences->plugin里搜索就可以找到)。安装完重启idea问题就解决了。 下面我们来看一下lombok中都有哪些好用的注解   @NonNull : 注解在参数上, 如果该类参数为 null , 就会报出异常, throw new NullPointException(参数名)   @Cleanup : 注释在引用变量前, 自动回收资源 默认调用 close() 方法   @Getter/@Setter : 注解在类上, 为类提供读写属性   @Getter(lazy=true) :实际使用到的时候生成   @ToString : 注解在类上, 为类提供 toString() 方法