springboot~Compiler时开启插件的笺注作用

对此IJ这一个IDE工具以来,大家会安装一些插件来帮衬我们更好的进展付出,像lombok正是一款不错的插件,使用表明的措施在项目编写翻译时推来推去大家转变代码,像getter,setter,tostring等等,它们一般都是有个别再次的代码,而lombok便是接济我们转变那一个再一次代码的,对于二个IJ的工具以来,假如您不运转编写翻译时注明作用,那么项目在build时会报错!

Getter/Setter


Getter/Setter表明功用域能够是实体类也得以是实际的品质字段,上面大家唯有对name属性添加注解,代码如下所示:

//...省略
//名称
@Getter
@Setter
private String name;

一旦想让lombok生效大家还索要针对idea工具实行插件的设置,上面大家依照顺序打开Idea配置File
> Settings > Plugins > Browse repositories… >
输入lombok,插件就会被自动物检疫索出来,界面如下图1所示:

图片 1


为此添加lombok的插件是可怜有必不可少的,不然项目在未编写翻译前四处飘红。

笔者的工具已经设置了该插件,全数在右手是从来不别的按钮的,若是你的工具没有设置该插件,左边会有1个血红的按钮,按钮的剧情则是Install,点击安装后重启Idea就足以了。
为了方便我们平昔运用SpringBoot项目为大家创设的测试类来验证我们的lombok表明是不是早已生效,测试类代码如下所示:

@RunWith(JUnit4.class)
//@RunWith(SpringRunner.class)
//@SpringBootTest
public class Chapter29ApplicationTests {

    @Test
    public void testLombok()
    {
        //测试Getter/Setter
        UserBean user = new UserBean();
        user.setName("测试lombok");
        System.out.println(user.getName());
    }
}

可以见到我们能够经常使用name属性的getter/setter方法,可是任何性能的却是无法调用,上边大家修改申明Getter/Setter地点,配置到实体类上。修改后的代码如下所示:

//省略...
@Getter
@Setter
public class UserBean
{
    //名称
    private String name;
    //年龄
    private int age;
    //家庭住址
    private String address;
}

我们再来测试下任何质量是或不是足以访问到了,测试类修改代码如下所示:

//省略...
@Test
    public void testLombok()
    {
        //测试Getter/Setter
        UserBean user = new UserBean();
        user.setName("测试lombok");
        user.setAge(10);
        user.setAddress("测试地址");

        System.out.println(user.getName()+"  " + user.getAge() +"  "+user.getAddress());
    }

能够看看大家修改配置地方后UserBean实体内的享有属性都怀有了Getter/Setter方法,那样我们在开发中就不须要再去做多余的更动操作了。

拉开build时的诠释

 “Settings > Build >
Compiler > Annotation Processors”

图片 2

然后再设置lombok插件

图片 3

在项目里布置关于lombok的注重项

compileOnly('org.projectlombok:lombok:1.16.20')

最后就能够在代码中运用lombok的注释了

/**
 * 用户实体
 *
* @Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
* @Setter:注解在属性上;为属性提供 setting 方法
* @etter:注解在属性上;为属性提供 getting 方法
* @og4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象
* @oArgsConstructor:注解在类上;为类提供一个无参的构造方法
* @llArgsConstructor:注解在类上;为类提供一个全参的构造方法
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class UserInfo {
    @Id
    private String id;
    @NotNull
    private String name;
    private String email;
}

好了,启用插件注脚就说到此处,谢谢阅读!

 

Slf4j


还有叁个利器,Lombok为大家松手了各个日志组件的扶助,大家在SpringBoot项目支出中大致都是行使logback作为日志组件,而logback是依据slf4j落成的。所以大家在实体类上直接助长@Slf4j就可以自动成立1个日记对象作为类内全局字段,自动创立的代码如下所示:

private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(Chapter29ApplicationTests.class);

为了测试本身在Chapter29ApplicationTests测试类上添加了@Slf4j,调用效果如下所示:

//调用:
log.info(u.toString());
//输出:
23:55:46.100 [main] INFO com.yuqiyu.chapter29.Chapter29ApplicationTests - UserBean(name=构造lombok, age=1, address=sss测试地址)

目标

使用Lombok增进开发功能。

ToString


除开上述的Getter/SetterLombok还为我们提供了自动生成toString方法的注释@ToString,该注脚的作用域仅仅是在实体类上,大家修改实体类添加该注明,在测试类中调用toString方法查看输出内容如下:

System.out.println(user.toString());
//输出:
UserBean(name=测试lombok, age=10, address=sss测试地址)

Lombok自动创设的toString方法会将兼具的习性都包涵并且调用后方可输出。

NoArgsConstructor

本来除了全体参数的构造函数,Lombok还提供了未曾子舆数的构造函数,使用方法与@AllArgsConstructor一致。

到那边恐怕你就有问号了,作者为着叁个类添加这么多证明麻烦呢?还不如工具生成getter/setter来的快呢,那好Lombok针对那几个难点也做出了缓解方案。

Data


大家应用@Data阐明就足以涵盖@ToString、@Getter、@Setter方法,当然大家采取构造函数时依然索要单独添加表明,上边大家修改实体类添加@Data注脚代码如下所示:

/*@Getter
@Setter
@ToString*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserBean
{
    //名称
    private String name;
    //年龄
    private int age;
    //家庭住址
    private String address;

    public String getAddress() {
        return "sss"+address;
    }
}

我们将@ToString、@Getter、@Setter多少个阐明注释掉后添加@Data,依据官方所说那时大家的测试类应该不会产出别的的十分,大家开辟测试类查看是否健康。

查看后果真,没有现身其余的要命,那也印证了@Data注明确实含有了地点多少个评释。

相关文章