• 简化javabean开发-->Lombok


    目录

    一.Lombok

    1.Lombok 介绍

    1.1Lombok 作用

    1.2SpringBoot 和 IDEA 官方支持

    2.Lombok 常用注解

    3.Lombok 应用实例 

    3.1在 pom.xml 引入 lombok

    3.2. 修改 Furn.java

    3.3在 idea 安装 lombok 插件


    一.Lombok

    1.Lombok 介绍

    1.1Lombok 作用

    1. 简化 JavaBean 开发 , 可以使用 Lombok 的注解让代码更加简洁
    2. Java 项目中, 很多没有技术含量又必须存在的代码 POJO getter/setter/toString ;异常处理;I/O 流的关闭操作等等,这些代码既没有技术含量,又影响着代码的美观, Lombok 应运而生

    1.2SpringBoot IDEA 官方支持

    1. IDEA 2020 已经内置了 Lombok 插件
    2. SpringBoot 2.1.x 之后的版本也在 Starter 中内置了 Lombok 依赖

    2.Lombok 常用注解

    3.Lombok 应用实例 

    3.1在 pom.xml 引入 lombok

    1. <dependency>
    2. <groupId>org.projectlombokgroupId>
    3. <artifactId>lombokartifactId>
    4. dependency>
    5. dependencies>

    -----------------------------------------看对应的版本--------------------------------------------- 

     

    3.2. 修改 Furn.java

    使用 Lombok 注解简化代码, 提示:可以通过 idea 自带的反编译功, Furn.class 的源码, 就可以看到生成的完整代码

    1. @Component
    2. @ConfigurationProperties(prefix = "furn01")
    3. //@ToString //在编译时,生成toString, 默认情况下,会生成一个无参构造器
    4. /**
    5. * 说明:
    6. * 1. Equivalent to {@code @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode}
    7. * 2. @Data 注解等价使用了 如下注解 @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode
    8. * 3. @RequiredArgsConstructor : 单独的说一下:
    9. */
    10. //@Data
    11. //说明: @NoArgsConstructor 在编译时,会生成无参构造器, 前面老师说过,默认情况下,会生成一个无参构造器
    12. //说明:当我们有其它构造器生成时,如果你希望仍然有无参构造器就需要使用@NoArgsConstructor指定一下
    13. // ,否则就会覆盖无参构造器,从而代码错误
    14. @NoArgsConstructor
    15. //说明:@AllArgsConstructor 在编译时,会生成全参构造器
    16. @AllArgsConstructor
    17. @ToString
    18. @Setter
    19. @Getter//时json获取数据的主要方法get方法,因为json底层使用的是getId等等方法
    20. public class Furn {
    21. private Integer id;
    22. private String name;
    23. private Double price;
    24. }

     

    3.3在 idea 安装 lombok 插件

    不装插件也可以用基本的注解,比如 @Data @Getter , 是不能使用其扩展功能, 比如日志输出..., 所以我们还是安装一下,也比较简单

     

    5. 演 示 使 用 Lombok 支 持 日 志 输 出 ( 建 议 使 用 slf4j),

    1. import com.hong.springboot.bean.Furn;
    2. import lombok.extern.slf4j.Slf4j;
    3. import org.springframework.beans.factory.annotation.Value;
    4. import org.springframework.stereotype.Controller;
    5. import org.springframework.web.bind.annotation.RequestMapping;
    6. import org.springframework.web.bind.annotation.ResponseBody;
    7. import javax.annotation.Resource;
    8. /**
    9. * @author 海绵hong
    10. * @version 1.0
    11. */
    12. @Slf4j
    13. @Controller
    14. public class HiController {
    15. //需求website 属性值从application.properties 的k-v
    16. @Value("${my.website}")
    17. private String website;
    18. //装配到HiController
    19. @Resource
    20. private Furn furn;
    21. //返回hi,springboot
    22. @RequestMapping("/hi")
    23. @ResponseBody
    24. public String hi() {
    25. System.out.println("website-" + website);
    26. return "hi~, SpringBoot";
    27. }
    28. @RequestMapping("/furn")
    29. @ResponseBody
    30. public Furn furn() {
    31. //System.out.println("furn--" + furn);
    32. //使用slf4j日志输出
    33. //普通方式
    34. log.info("furn-" + furn);
    35. //占位符方式输出
    36. log.info("furn={} myfurn={}", furn, furn);
    37. return furn;
    38. }
    39. }

  • 相关阅读:
    设计模式学习笔记 - 装饰者模式
    【周阳-JUC入门】【02】Callable_ForkJoin_异步回调
    IOT Core-设备接入网关
    【OS】操作系统课程笔记 第八章 虚拟存储管理
    USB通讯原理
    【Node.JS 练习】考试成绩整理
    【Vue】组件间双向绑定 自定义修饰符
    eBay、亚马逊、Lazada、Shopee、速卖通、美客多等跨境电商平台,测评自养号需要满足什么条件?listing如何优化?
    亚马逊云科技携手西门子运用生成式AI之力,打破数据孤岛
    OneDiff 1.0发布!生产环境稳定加速SD/SVD模型
  • 原文地址:https://blog.csdn.net/weixin_54107527/article/details/127984924