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

Spring Boot第二章笔记1

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

Spring Boot第二章笔记1

#核心配置与注解

##全局配置文件

####application.properties配置文件

server.port=8081
server.servlet.context-path=/chapter02

#对实体类对象Person进行属性配置
person.id=1
person.name=tom
person.hobby=play,read,sleep
person.family=father,mother
person.map.k1=v1
person.map.k2=v2
person.pet.type=dog
person.pet.name=kity

#标准写法
person.firstName=wangwu

#使用横线-来对单词进行分隔
person.first-name=wangwu

#使用下划线_分隔
person.first_name=wangwu

#声明常量
PERSON.FIST_NAME=wangwu

spring.profiles.active=test

####实体类Person中的注解
1.@Component
将当前注入属性值的Person类对象作为Bean组件放到Spring容器中,只有它这样才能被@ConfigurationProperties注解赋值

2.@ConfigurationProperties(prefix = “person”)
将配置文件中以person开头的属性值通过setter方法注入该类对应属性中

####application.yaml配置文件
application.yaml文件使用 "key: (空格) value"格式配置属性,使用缩进控制层级关系

  • value值为普通数据类型时(如数字、字符、布尔等)
    可以直接配置对应的属性值,对字符串类型的属性值赋值时不需要加引号
#当value值为普通数据类型
server:
  port: 8082
  servlet:
    context-path: /hello
  • value值为数组和单列集合
    主要有两种书写格式:

缩进式写法

#方法1
person:
 hobby:
  - play
  - read
  - sleep

#方式2
person:
 hobby:
  play,
  read,
  sleep

行内式写法

hobby: [play,read,sleep]
  • value值为Map集合和对象

缩进式写法

person:
  map:
    k1: v1
    k2: v2

行内式写法

person:
  map: {k1: v1,k2: v2}

####使用@Value注入属性

  • @Value注解是用来读取配置文件中的属性值并逐个注入Bean对象的对应属性
    例如给实体类person注入
@Configuration
public class Person {
   @Value("$person.id")
   private int id;
}

####@ConfigurationProperties注解与@Configuration注解对比

对比点@ConfigurationProperties@Configuration
底层框架Spring BootSpring
功能批量注入文件中的属性单个注入
setter方法需要不需要
复杂类型属性注入支持不支持
松散绑定支持不支持
JSR3303数据校验支持不支持
SpEL表达式不支持支持

#####1. 属性setter方法
在使用@ConfigurationProperties 注解进行配置文件属性值读取注入时,还必须为每一个属性设置setter方法,通过对应的注解才能够将配置文件中的属性一 一匹配并注入对应的Bean属性上。如果配置文件中没有配置属性值,则会自动将对应的Bean属性设置为空。
@Value完全不需要为属性设置setter方法,该注解会先通过表达式读取配置文件中指定的属性值,然后自动注入下方的Bean属性上。如果读取的配置文件属性为空,进行属性注入时程序会自动报错。
#####2. 复杂类型属性注入
@ConfigurationProperties和@Value都能注入配置文件中的属性,不同的是@ConfigurationProperties支持任意数据类型的属性注入,包括基本数据类型和复杂数据类型,而@Value只能注入基本类型的属性。
#####3.松散绑定
@ConfigurationProperties注解进行配置文件属性值注入时,支持松散绑定语法。例如Person类有一个字符串类型的属性firstName,那么在配置文件中进行属性配置时可以使用如下
配置方式,示例代码如下。

#标准写法
person.firstName=wangwu

#使用横线-来对单词进行分隔
person.first-name=wangwu

#使用下划线_分隔
person.first_name=wangwu

#声明常量 使用大小写
PERSON.FIST_NAME=wangwu

#####4.JSR303数据校验
主要作用是校验配置文件中注入对应Bean属性的值是否符合相关值的规则

@Configuration
@ConfigurationProperties(prefix = "user")
@Validated   //引入Spring框架支持的数据校验规则
public class User {

    @Email   //对属性进行规则匹配
    private String email;

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

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

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

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