首页 > 其他分享 >day05-Lombok、SpringInitializer

day05-Lombok、SpringInitializer

时间:2023-03-16 20:23:15浏览次数:48  
标签:Spring day05 Initializer SpringInitializer 注解 import Lombok lombok

Lombok、Spring-Initializer

1.Lombok

1.1Lombok介绍

  1. Lombok的作用是:
    • 简化Javabean的开发,可以使用Lombok的注解让代码更加简洁
    • Java项目中,很多没有技术含量又必须存在的代码:比如POJO类的getter、setter、toString方法;异常处理;IO流的关闭操作等等。这些代码既没有技术含量又影响着代码的美观,因此Lombok应运而生。
  2. SpringBoot和IDEA的官方支持
    • IDEA2020已经内置了Lombok插件
    • SpringBoot2.1.x之后的版本也在Starter中内置了Lombok依赖

1.2Lombok常用注解

https://www.modb.pro/db/138770

https://www.cnblogs.com/zwbsoft/p/16124806.html

注解 解释
@Data 只能标注到类上,综合@Getter、@Setter、@RequiredArgsConstructor @ToString、@EqualsAndHashCode五个注解的功能。
@Setter 可标注到类或属性上,标注到类上表示此类中的所有属性生成setter方法,标注到某个属性上,表示此属性生成setter方法。
@Getter 可标注到类或属性上,标注到类上表示此类中的所有属性生成getter方法,标注到某个属性上,表示此属性生成getter方法。
@Log4j 注解在类上,为类提供一个属性名为log的log4j日志对象
@NoArgsConstructor 只能标注到类上,生成无参的构造方法。
@AllArgsConstructor 只能标注到类上,生成包含所有属性的构造方法,使用此注解时建议和@NoArgsConstructor结合使用,否则此类将没有无参的构造方法。
@RequiredArgsConstructor 写在类上可以代替@AutoWired注解,需要注意的是在注入时需要用final定义,或者使用@notnull注解
@Cleanup 可以关闭流
@Builder 被注解的类加个构造者模式
@Synchronized 加同步锁
@SneakyThrows 等同于try/catch捕获异常
@NonNull 如果修饰于参数,当参数为null时会抛出空指针异常
@Value 只能标注到类上,综合@Getter,@Setter,@ToString,@EqualsAndHashCode,@NoArgsConstructor五个注解的功能,和@Data不同的是,默认将所有属性定义成final的,也就是只会生成getter方法,不会生成setter方法,如果不需要final,则给属性加上@NonFinal注解即可。

3.应用实例

(1)使用Lombok要先引入相关库

image-20230316182700555
<!--引入Lombok,使用版本仲裁-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>

(2)User.java

package com.li.springboot.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
 * @author 李
 * @version 1.0
 */
//@ToString    //在编译时,生成toString方法,默认情况下也会生成一个无参构造器
//@Data    //等价于@Getter+@Setter+@RequiredArgsConstructor+@ToString+@EqualsAndHashCode
//@NoArgsConstructor    //编译时会生成无参构造器,它的意义在于显式定义,防止会有参构造器覆盖
//@AllArgsConstructor    //编译时生成全参构造器(注意如果没有声明无参构造器时,全参构造器会覆盖它)
public class User {
    private Integer id;
    private String name;
    private String address;
}

4.安装插件

  1. 不安装插件也可以使用基本的注解,比如@Data,@Getter等
  2. 但是不能使用其扩展功能,比如日志输出
image-20230316185200699

演示使用Lombok-@Slf4j

(1)User.java

package com.li.springboot.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import org.springframework.stereotype.Component;

/**
 * @author 李
 * @version 1.0
 */
@Component
@ToString 
@Getter
@Setter
@NoArgsConstructor
public class User {
    private Integer id;
    private String name;
    private String address;
}

(2)控制器

package com.li;

import com.li.springboot.bean.User;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;

/**
 * @author 李
 * @version 1.0
 */
@Slf4j
@Controller
public class HiController {
    @Resource
    private User user;

    @RequestMapping("/user")
    @ResponseBody
    public User user() {
        //使用@Slf4j日志输出
        //普通方式输出:
        log.info("user="+user);
        //占位符方式输出:
        log.info("user={},myuser={}",user,user);
        return user;
    }
}

注意,如果以json格式返回,那么Javabean中需要设置Getter和Setter方法。

image-20230316191223868 image-20230316191533862

2.Spring-Initializer

2.1Spring Initializer介绍

Spring Initializer的作用

  1. 程序员通过Maven Archetype 来生成Maven项目,项目原型相对简陋,需要手动配置,比较灵活。
  2. 通过Spring官方提供的Spring Initializer来构建Maven项目,能完美支持IDEA和Eclipse,让程序员来选择需要的开发场景(starter),还能自动生成自动类和单元测试代码
  3. Spring Initializer对IDEA版本有要求,还需要注意网络问题

2.2使用演示

演示使用Spring-Initializer创建SpringBoot项目,并支持web应用场景,支持mybatis

2.2.1方式1-IDEA创建

(1)File-New-Project 创建项目

(2)选择Spring Initializer(如果没有看到这个选项,需要安装Spring Initializer插件)

image-20230316193452427

(3)选择版本和依赖

image-20230316193731542

(4)项目创建好之后自动生成启动类和单元测试代码

image-20230316195724842

2.2.2方式2-官网创建下载

(1)直接到官网去创建项目然后下载

image-20230316200447905

(2)下载完毕,使用idea打开,它的结构和方式一生成的一样

image-20230316200824394

2.3注意事项和使用细节

如果通过Spring Initializer创建的pom.xml文件报错,可能是版本问题。解决方式是:指定版本和当前的SpringBoot一致,再刷新maven即可解决

标签:Spring,day05,Initializer,SpringInitializer,注解,import,Lombok,lombok
From: https://www.cnblogs.com/liyuelian/p/17224006.html

相关文章

  • Lombok 中的 @Slf4j 注解
    Lombok是一种Java库,它可以通过注解来消除Java类中的样板代码,例如getter和setter方法、构造函数和equals/hashCode实现等。Lombok可以帮助Java开发人员编写更简洁、更干净的......
  • 4_Day05
    29.关于Knife4j框架(续)在使用Knife4j时,应该通过相关注解,将API文档配置得更加易于阅读和使用,可以(续):@ApiModelProperty:添加在POJO类型的属性上,通过此注解的value属性可以......
  • Day05-设计模式之适配器模式
    设计模式之适配器模式适配器模式介绍适配器模式(AdapterPattern)是将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作......
  • Lombok注解
    一、简介:Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率二、Lombok使用:使用Lombok需要的开发环境Java+Maven+IntelliJIDEA或者Eclipse(安装Lo......
  • Mybatis-lesson07-lombok-慎用慎用吧-03-12
    第一步:Settings中加入plugins---lombok第二步:maven中导入依赖<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><ve......
  • Day05-Vue脚手架
    Vue脚手架学习目标:理解Node.js基本使用方法理解包资源管理器NPM的使用理解webpack的作用理解vue-cli脚手架(重点)Element-UI组件库1.vue的格式: newVue({......
  • day05
    publicclassDemo03{publicstaticvoidmain(String[]args){//整数扩展:进制二进制0b十进制八进制0十六进制0xinti=10;......
  • day05-功能实现04
    功能实现04后端:https://github.com/liyuelian/furniture-back-end.git前端:https://github.com/liyuelian/furniture-front-end.git9.功能09-添加家居表单前端校验9.1......
  • lombok 失效 Lombok supports: sun/apple javac 1.6, ECJ
    关于这个问题,我有种想要掐死idea的冲动。启动项目,突然@Slf4j下使用log就无效了,要多突然有多突然,然后就发现报错说,java不能使用lombok了,百度搜索了下Lomboksupports:su......
  • lombok注解
    1maven依赖<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope><version>1.18.24</version......