栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Lombok学习总结

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Lombok学习总结

1.官网:https://projectlombok.org/

2.干什么用的?

①简化pojo类的书写(getter,setter,tostring,equals,hascode...)

pojo:plain old/ordinary java object 简单的java对象,不包含业务逻辑、能够控制自己内部n个属性访问的java对象

3.pojo和 java beans

①各类pojo

dto:data transfer object

do:data object(表的字段一一对应)、po:persist object

bo:buiness object

vo:view/value object 值对象

各类pojo在恩来项目中的应用:

②pojo vs javabeans

相同点:都没有业务逻辑

不同点:pojo不需要有无参构造,javabeans必须有

pojo属性的访问权限无限制,javabeans  private setter 和getter

如果是javabeans 那么一定是pojo,如果是pojo不一定是javabeans

4.lombok的安装:

引入lombok的jar包:


    org.projectlombok
    lombok
    1.18.20
    provided

安装插件并设置

5.lombok注解的使用:

import lombok.*;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;

@Getter

@Setter

//全参构造
@AllArgsConstructor

//无参构造
//@NoArgsConstructor

//必须要包含的构造函数
@RequiredArgsConstructor

//只打印name
//@ToString(of = {"name"})

//排除name打印其他属性
//callSuper指定调用父类的toString方法
@ToString(exclude = {"name"},callSuper = true)

//只使用name来生成Equals和HashCode方法
@EqualsAndHashCode(of = {"name"})

//相当于@Getter@Setter@EqualsAndHashCode,默认是按照所有属性比较
@Data

//链式编程,本身不做任何操作,需要基于@Data或者@Getter@Setter才能生效
//fluent流利的,user.name("lizefei") 不需要写成setName("lizefei"),set可以不用写
@Accessors(chain = true,fluent = true)

//一般在业务层使用,专门针对项目中使用slf4j
@Slf4j


public class User {

    private String name;
    
    //该属性加了@NonNull,则该属性被包含在构造函数中
    @NonNull
    private String address;

    private int age;
    //不生成get和set方法
    @Getter(value = AccessLevel.NONE)
    @Setter(value = AccessLevel.NONE)
    //final:定义初始化或者构造初始化,当加了final,则该属性被包含在构造函数中
    private final String finalProp;



}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/695184.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号