Lombok

建造者(Builder)模式

白昼怎懂夜的黑 提交于 2020-03-15 09:47:39
建造者模式(Builder Pattern)又称生成器模式,熟悉lombok的朋友应该有印象,lombok有一个注解(Annotation)叫@Builder。 import lombok.Builder; import lombok.ToString; @Builder @ToString public class Book { private Long id; private String name; private String author; } 然后是测试类: public class BuilderTest { public static void main(String[] args) { Book book = Book.builder().id(1L).name("《西游记》").author("吴承恩").build(); System.out.println(book); } } 执行打印输出: Book(id=1, name=《西游记》, author=吴承恩) 我们可以看到main方法构造Book对象的时候,并没有new,而是用Book的builder方法链式调用来构造出来Book对象的。 我们可以去target目录查看编译的class文件,发现Book其实一共有两个class文件: Book.class Book$BookBuilder.class

Use custom setter in Lombok's builder

喜欢而已 提交于 2020-03-13 07:01:07
问题 I have a custom setter in my Lombok-based POJO: @Data @Builder public class User { private static final PasswordEncoder ENCODER = new BCryptPasswordEncoder(); private String password = null; public void setPassword(String password) { Assert.notNull(password); this.password = ENCODER.encode(password); } but when I use the Lombok generated builder: User user = User.builder() .password(password) .build(); my custom setter is not invoked, and so the password is not encoded. This makes me sad. My

mybatis-plus java.lang.IndexOutOfBoundsException: Index: 11, Size: 11

雨燕双飞 提交于 2020-03-10 19:00:00
您是否使用lombok 提前说明本文的异常时由于使用lombok不适当。 mybatis plus出现这个错? 猛一看我以为是什么数组下标越界之类的问题啊,真是无从下手。 获取的数据字段正好是11个。 既然都各种查询都报错,那么我就将错误的目标定位到了实体类上。 发现实体类只使用了@Builder注解,@Builder注解使用后我们必须显示的声明构造方法,或者使用@AllArgsConstructor @NoArgsConstructor来声明构造。 这个异常正式因为使用MP和lombok不当造成的,mybatis找不到构造方法,无法将查询结果绑定到实体对象上。 来源: oschina 链接: https://my.oschina.net/yuhuashang/blog/3191184

Lombok

百般思念 提交于 2020-03-09 11:08:12
项目中引入Lombok 首先在项目的 pom . xml 中引入 Lombok 依赖: <dependency> <groupId> org.projectlombok </groupId> <artifactId> lombok </artifactId> </dependency> 除此之外,还要在IDE中安装Lombok插件,并配置: 接下来进行代码实验。 爽!get/set不用写了 以前我们写一个 POJO 对象时,比如定义一个课程 Course ,需要自己手动写上每个字段的 get () 和 set () 方法,就像这样: public class Course { private Long id ; // 课程ID private String name ; // 课程名称 private Integer score ; // 课程成绩 // 自己手写下面的 get/set 方法! public Long getId () { return id ; } public void setId ( Long id ) { this . id = id ; } public String getName () { return name ; } public void setName ( String name ) { this . name = name ; }

MyBatis学习笔记

荒凉一梦 提交于 2020-03-09 00:22:35
MyBatis ORMapping:Object Relationship Mapping 对象关系映射 对象指面向对象 关系指关系型数据库 Java到MySQL的映射,开发者可以以面向对象的思想来管理数据库 如何使用 新建Maven工程,pom.xml <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.11</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.6</version> <scope>provided</scope> </dependency> </dependencies> <build> <resources> <resource> <directory>src/main/java

How to use Lombok @SuperBuilder on Abstract classes with final fields

≯℡__Kan透↙ 提交于 2020-03-04 17:45:46
问题 Given the following classes with the Lombok annotations @Data and @SuperBuilder @Data @SuperBuilder public abstract class Parent { protected final String userId; protected final Instant requestingTime; } @Data @SuperBuilder public class Child extends Parent { private final Instant beginningDate; private final Instant endingDate; private final Collection<String> fields; } I am getting the following error appearing over the @Data annotation in the Child class: Implicit super constructor Parent(

lombok 之让你的开发效率翻倍

↘锁芯ラ 提交于 2020-03-04 15:33:43
1.安装lombok 下载lombok.jar https://projectlombok.org/ 执行 java -jar lombok.jar 选择你要你要安装的ide 点击install 2.lombok 编写代码 mvn 引入lombok .jar <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.16</version> <scope>provided</scope> </dependency> 编写代码 import lombok.Data; @Data public class Bean { private Integer id; private String beanName; private String beanPackage; } eclipse 类展开显示,set get,equal,hashcode方法自动生成。very good,我只需要关注属性就可以,有点类似现在的groovy 同时 ,不翻译了,谁想翻译可以留言,反正感觉很NX,试试就知道 val 定义属性,可以理解为javascript中的var 定义一样 @NonNull 在属性类型前加 @NonNull 会自动判断这个属性是否为空 @Cleanup

lombok 引入后,测试类始终找不到get,set方法。

爱⌒轻易说出口 提交于 2020-03-04 15:27:10
开发环境为idea,jdk1.7,maven3.5. 网上直接搜出来的方法有: 1、在setting里安装lombok的plugins; 2、如下图,勾选enable annocation processing选项 3、升级maven plugins插件 我尝试了以上方法还是set方法运行时报错,无奈了…… 4、最终发现,还有修改,idea编译的方式,应该选javac而不是eclipse,说eclipse方式不支持,注解生成get,set方法并使用。改了如下 最终可以使用了! 参考网址: https://blog.csdn.net/xzp_12345/article/details/80268834 欢迎指正和补充! 来源: oschina 链接: https://my.oschina.net/u/2301293/blog/1857763

基于activity的强大java工作流引擎,可视化开发工作流

﹥>﹥吖頭↗ 提交于 2020-03-04 11:07:49
我们先来看看工作流和Activity? 工作流引擎 所谓工作流引擎是指workflow作为应用系统的一部分,并为之提供对各应用系统有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。工作流引擎包括流程的节点管理、流向管理、流程样例管理等重要功能。 Activity介绍 Activity是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss jBPM的项目架构师,它特色是提供了eclipse插件,开发人员可以通过插件直接绘画出业务流程图。 XJR快速开发平台的工作流是整合activity工作流引擎的图形化流程设计器,通过可视化配置界面。基于B/S结构,纯浏览器应用,只需要拖拽组件,拼接流程,就能实现各层的审批。既能实现OA办公系统内部工作流之间的数据整合,如借款与报销、预算与决算等,又能实现OA办公系统工作流与其他业务系统之间的数据整合,如HR、ERP、CRM等。 XJR快速开发平台技术选型: 使用目前流行的多种web技术,包括springboot, JPA,Druid, Activiti,Lombok,swagger,poi

Intellij IDEA 14 安装之后

可紊 提交于 2020-03-02 02:54:51
####Intellij IDEA 14 安装之后 设置IDEA的字体 File -> Settings -> Appearance & Behavior -> Appearance -> 勾选Override default fonts by -> Name下拉框选择字体(文泉驿微米黑/SansSerif) 设置显示内存使用情况 File -> Settings -> Appearance & Behavior -> Appearance -> 勾选Show memory indicator 设置主题风格 File -> Settings -> Appearance & Behavior -> Appearance -> 下拉Theme选择Darcula 设置光标位于行后(14版本默认已经是了) File -> Settings -> Editor -> General -> 去掉勾选Allow placement of caret after end of line 设置显示代码行数和方法线 File -> Settings -> Editor -> General -> Appearance Show line numbers 勾选 SHow method separators 勾选 设置Tab显示多行和Tab个数 File -> Settings -> Editor ->