• 简化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. }

  • 相关阅读:
    React中的路由基础知识(一级路由),5版本的!!!
    线性回归模型(OLS)1
    Mysql启动报错:InnoDB: Operating system error number 13 in a file operation.的解决方法
    Modbus RTU(Remote Terminal Unit)与RS-485协议介绍(主站设备(Master)、从站设备(Slave))
    taobao.trade.get( 获取单笔交易的部分信息),淘宝店铺订单接口,淘宝oAuth2.0接口,淘宝R2接口代码对接分享
    1、什么是ETF?
    Flutter学习:使用CustomPaint绘制路径
    (学习日记)2022.7.27
    Multisim14.0仿真应用设计(四)基于LM324的电压跟随器仿真
    Mybatis中@MapKey注解简介说明
  • 原文地址:https://blog.csdn.net/weixin_54107527/article/details/127984924