SpringBoot(Lombok + Spring Initailizr + yaml)

这篇具有很好参考价值的文章主要介绍了SpringBoot(Lombok + Spring Initailizr + yaml)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.Lombok

1.基本介绍

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

2.应用实例
1.pom.xml 引入Lombok,使用版本仲裁
    <!--导入springboot父工程-->
    <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.5.3</version>
    </parent>
    <dependencies>
        <!--配置maven项目场景启动器,自动导入和web相关的包-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--引入Lombok,使用版本仲裁-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>
2.@Data注解说明
  • 相当于Getter, Setter, RequiredArgsConstructor, ToString, EqualsAndHashCode,Value这些注解的组合
  • 主要记住Getter, Setter,ToString

package lombok;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
* Generates getters for all fields, a useful toString method, and hashCode and equals implementations that check
* all non-transient fields. Will also generate setters for all non-final fields, as well as a constructor.
*


* Equivalent to {@code @Getter @Setter @RequiredArgsConstructor @ToString @EqualsAndHashCode}.
*


* Complete documentation is found at the project lombok features page for @Data.
*
* @see Getter
* @see Setter
* @see RequiredArgsConstructor
* @see ToString
* @see EqualsAndHashCode
* @see lombok.Value
/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.SOURCE)
public @interface Data {
/
*
* If you specify a static constructor name, then the generated constructor will be private, and
* instead a static factory method is created that other classes can use to create instances.
* We suggest the name: “of”, like so:
*
*


* public @Data(staticConstructor = “of”) class Point { final int x, y; }
*

*
* Default: No static constructor, instead the normal constructor is public.
*
* @return Name of static ‘constructor’ method to generate (blank = generate a normal constructor).
*/
String staticConstructor() default “”;
}
3.@RequiredArgsConstructor注解说明(不常用)

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

4.@NoArgsConstructor无参构造器
5.@AllArgsConstructor全参构造器
注意事项:
  • 当使用全参构造器时,默认的无参构造器会消失
  • 如果还想要无参构造器就需要使用无参构造器的注解
6.两种使用Lombok的方式
1.需要Getter, Setter,ToString,无参构造器
  • @Data
2.需要使用Getter, Setter,ToString,无参构造器,全参构造器
  • @Data
  • @AllArgsConstructor
  • @NoArgsConstructor
3.在IDEA中安装Lombok插件解锁扩展注解
1.安装插件

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

2.扩展注解:日志输出
1.代码实例

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

2.会在日志中输出

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

2.Spring Initailizr(不推荐)

1.基本介绍

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

2.通过IDEA方式创建
1.新创建一个项目

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

2.进行配置

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

3.创建成功

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

3.通过官网创建
1.进入官网

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

2.配置完之后选择

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

3.最后会生成一个.zip文件,解压之后在IDEA中打开即可
4.第一次使用自动配置爆红

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

3.yaml

1.基本说明

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

2.yaml基本语法

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

3.yaml数据类型
1.字面量

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

2.对象

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

3.数组

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

4.yaml应用实例
1.创建一个新的maven项目

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

2.pom.xml引入依赖并刷新maven
    <!--导入springboot父工程-->
    <parent>
        <artifactId>spring-boot-starter-parent</artifactId>
        <groupId>org.springframework.boot</groupId>
        <version>2.5.3</version>
    </parent>
    <dependencies>
        <!--配置maven项目场景启动器,自动导入和web相关的包-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--引入Lombok,使用版本仲裁-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>
3.编写两个bean
1.Car.java
package com.sun.springboot.bean;


import lombok.Data;
import org.springframework.stereotype.Component;

/**
 * @author 孙显圣
 * @version 1.0
 */
@Data //getter,setter,tostring,无参构造
@Component
public class Car {
    private String name;
    private Double price;

}

2.Monster.java
package com.sun.springboot.bean;

import lombok.Data;
import org.springframework.stereotype.Component;

import java.util.*;

/**
 * @author 孙显圣
 * @version 1.0
 */
@Data
@Component
public class Monster {
    private Integer id;
    private String name;
    private Integer age;
    private Boolean isMarried;
    private Date birth;
    private Car car;
    private String[] skill;
    private List<String> hobby;
    private Map<String, Object> wife;
    private Set<Double> salaries;
    private Map<String, List<Car>> cars;

}

4.HiController.java 接受请求
package com.sun.springboot.controller;

import com.sun.springboot.bean.Monster;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * @author 孙显圣
 * @version 1.0
 */
@RestController
public class HiController {
    @Resource
    private Monster monster;

    @RequestMapping("/monster")
    public Monster monster() {
        return monster;
    }
}

5.主程序Application.java
package com.sun.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author 孙显圣
 * @version 1.0
 */
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class);
    }
}

6.运行主程序(目前返回的值是空的)

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

7.创建yaml文件(后缀也可以是yml) resources/application.yml
monster: #前缀
  id: 100
  name: 牛魔王
  age: 500
  isMarried: false
  birth: 2000/11/11 
8.绑定数据到Monster类

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

9.解决报错
1.因为使用@Configuration注解导致的问题

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

2.在pom.xml中添加依赖即可
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-configuration-processor</artifactId>
      <!--防止将该依赖传递到其他模块-->
      <optional>true</optional>
    </dependency>
3.运行主程序

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml

10.完整yml文件
monster: #前缀
  id: 100
  name: 牛魔王
  age: 500
  isMarried: false
  birth: 2000/11/11
  #对象类型
#  car: {name: 宝马, price: 1000} #行内格式
  car:
    name: 奔驰
    price: 3000

  #数组类型
#  skill: [芭蕉扇, 牛魔拳] #行内格式
  skill:
    - 牛魔王
    - 芭蕉扇

  #list类型
#  hobby: [白骨精, 美人鱼]
  hobby:
    - 白骨精
    - 牛魔王

  #map类型
#  wife: {no1: 牛魔王, no2: 猪八戒}
  wife:
    no1: 白骨精
    no2: 铁扇公主

  #set类型
#  salaries: [1, 2, 3]
  salaries:
    - 4
    - 5
    - 6
  #map<String, List<Car>>类型
  cars:
    car1: [
      {name: 奔驰, price: 400},
      {name: 奔驰, price: 400}
    ]
    car2: [
      {name: 奔驰, price: 400},
      {name: 奔驰, price: 400}
    ]

#  cars: {car1: [{name: 奔驰, price: 200}, {name: 奔驰, price: 200}],
#          car2: [{name: 奔驰, price: 200}, {name: 奔驰, price: 200}]}



11.结果展示

SpringBoot(Lombok + Spring Initailizr + yaml),SpringBoot学习日记,spring,spring boot,java,Lombok,Initailizr,yaml文章来源地址https://www.toymoban.com/news/detail-840440.html

12.yaml注意事项和细节说明
1.注意事项
  • application.properties和application.yml如果有相同前缀值的绑定,则application.properties优先级高
  • 字符串无需加引号,但是加引号也没有问题
  • yaml配置文件如果不提示字段信息,则导入依赖即可
  • 如果添加依赖还不显示字段信息则安装YAML插件
2.细节说明
  • 其实不需要记住什么yaml的类型,只要能跟java对应上即可
  • 如果是对象或者map,则表示方式是
    • 换行key: value
    • {key1: value1, key2: value2}
  • 如果是数组或list,则表示方式是
    • 换行- value
    • [value1, value2]

到了这里,关于SpringBoot(Lombok + Spring Initailizr + yaml)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 从零开始 Spring Boot 38:Lombok 与依赖注入

    图源:简书 (jianshu.com) 在之前的文章中,我详细介绍了 Lombok 的用法,考虑到在 Spring 中使用依赖注入(DI)是如此的频繁,因此有必要讨论使用 Lombok 时可能对依赖注入造成的影响。 我们都知道,Spring 中的依赖注入分为三种情况: 通过属性进行依赖注入。 通过构造器进行依

    2024年02月08日
    浏览(71)
  • SSMP整合案例(2) Spring Boot整合Lombok简化实体类开发

    好啊 接着我们上文SSMP整合案例(1) 构建 Spring Boot Vue MySql项目环境 我们继续 接下来 我们要在java项目中 建立出数据库表对应的实体类 我们还是先看看自己上文中 创建的这个 book表 其中四个字段 主键id 数字枚举类型的type 字符串类型name 字符串类型 description 我们打开idea 找到上

    2024年02月09日
    浏览(47)
  • 在 Spring Boot 应用程序中将 MapStruct 与 Lombok 结合使用的方法

    在本文中,您将找到有关如何高效使用 MapStruct、Lombok 和 Spring Boot 的代码示例和说明。         当您实现任何规模的服务时,您通常需要将数据从一种结构移动到另一种结构。通常,这是在不同逻辑层使用的相同数据 - 在业务逻辑、数据库级别或用于传输到前端应用程序

    2024年02月14日
    浏览(41)
  • 执行Spring Boot项目时报错:Lombok requires enabled annotation processing

    在使用 Lombok 时,你需要启用注解处理器(annotation processing)。下面是一些步骤来启用注解处理器: 确保已在项目中添加了 Lombok 的依赖。可以在项目的构建配置文件(如 Maven 的 pom.xml 或 Gradle 的 build.gradle)中添加以下依赖项: 在 IntelliJ IDEA 中打开项目设置(File - Settings)。

    2024年02月06日
    浏览(39)
  • Spring学习笔记+SpringMvc+SpringBoot学习笔记

    1.1 概念 1、 POJO 是 Plain Old Java Object(简单老式Java对象)的缩写。它是指在Java开发中普通的Java对象,不依赖于特定的框架或技术。POJO 类型通常用于表示领域模型、数据传输对象(DTO)或实体对象等。 1.2 注解 1.1 SpringMVC概述 SpringMVC用于表现层开发,与Servlet相似,但使用上比

    2024年02月12日
    浏览(42)
  • Spring Boot原理分析 | SpringApplication、Yaml、Properties

    💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! Spring开源框架,轻量级的Java开发框架,解决企业级应用开发的复杂性而创建,简化开发 基于POJO的轻量级和最小侵入型编程 通过IOC,依赖注入(DI)和面向接口实现松耦合 基于切面(AOP)和惯例进行声明式编程 通过切

    2024年02月12日
    浏览(43)
  • Spring Boot Application.properties和yaml配置文件

    全局配置文件能够对一些默认配置值进行修改。Spring Boot使用一个application.properties或者application.yaml的文件作为全局配置文件,该文件存放在src/main/resource目录或者类路径的/config,一般会选择resource目录。 使用Spring Initializr方式创建项目——PropertiesDemo 单击【Next】按钮 添加W

    2024年01月24日
    浏览(74)
  • 在Idea编辑中,解决Spring Boot之.yaml或.properties配置文件不能自动提示的问题,或者配置Spring Boot的.yaml或.properties文件的自动提示

    我们使用 idea 编辑器创建 spring boot 项目,并添加了 .yaml 或 .properties 配置文件后,在配置相关信息时,一般是需要它自动提示,如下图所示: 然而,我在配置 druid 却没有显示,如下如所示: 那么,这是怎么回事呢? 参考网上的教程,使用如下4个步骤分析。 使用 CTRL + ALT

    2024年02月16日
    浏览(51)
  • spring boot学习第六篇:SpringBoot 集成WebSocket详解

    1、WebSocket简介 WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。 2、为什么需要WebSocket HTTP 是基于请求响应式的,即通信只能由客户端发起,服务端做出响应,无状态,无连接。 无状态:每次连

    2024年01月21日
    浏览(52)
  • Springboot学习:安装spring boot helper插件的相关问题

    在idea中安装在线插件spring boot helper后,在构建spring boot项目发现IDE严重报错:spring boot helper不是JetBrains的插件,解决方法是: 卸载刚才安装的插件,注意需要卸载插件后点击“应用”,然后重启idea即可卸载成功,不然会卸载不成功。 需要说明的是:安装自己搜索的“spring

    2024年02月14日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包