spring boot的配置文件application及注入javaBean(初学)

1、简述

SpringBoot使用一个全局的配置文件,配置文件名是固定的;

  1. application.properties

  2. application.yml

配置文件用于修改Spring Boot自动配置的基础值

  • yml,properties与xml对比

​ YAML:

server:
  port: 8081

​ properties:

server.port=8080

​ XML:

<server>
	<port>8081</port>
</server>

需要标签嵌套,有些赘余

2、yml语法

1、基本语法

  • 形式—>key:(空格)value
  • 以键值对的形式出现,注意一定要在冒号后加空格
  1. 空格的缩进来表示层与层之间的关系

  2. 只要是左对齐的一列数据,都是同一个层级的

example:

server:
  port: 8081
person:
  lastName: wlzs
  age: 20
  birthday: 1999/01/21
  maps: {key1: value1,key2: value2}
  lists:
    - C++
    - Java
    - python
  student:
    name: wzbl
    age: 21

2、写法

对象(person为对象名,lastName,age,birthday为成员属性):

缩进写法:

person:
  lastName: wlzs
  age: 20
  birthday: 1999/01/21

行内写法:

friends: {lastName: wlzs,age: 20,birthday: 1999/01/21}

数组(lists为数组名,C++,Java,python为组内成员):

缩进写法:(-后加空格)

lists:
   	- C++
    - Java
    - python

行内写法

lists: [C++,Java,python]

Map

maps: {key1: value1,key2: value2}

配置文件内不要求为字符串加双引号

“”:双引号:不会转义特殊字符 如换行:\n

“wlzs/nwlzs”

输出:

wlzs/nwlzs

‘’:单引号;会转义特殊字符

“wlzs/nwlzs”

wlzs
wlzs

随机数

${random.value}、${random.int}、${random.long}
${random.int(10)}、${random.int[1024,65536]}

yml支持多文档块方式

server:
  port: 8081
spring:
  profiles:
    active: prod
---
server:
  port: 8083
spring:
  profiles: dev
---
server:
  port: 8084
spring:
  profiles: prod 

例:不同的设备使用不同的端口

3、配置文件值注入到类

为了方便首先在pom内导入配置文件处理器

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

放入依赖后配置文件会对绑定类的属性进行提示

在这里插入图片描述

配置文件:

  • yml
person:
  lastName: wlzs
  age: 20
  birthday: 1999/01/21
  maps: {key1: value1,key2: value2}
  lists:
    - C++
    - Java
    - python
  student:
    name: wzbl
    age: 21
  • properties
person.lastName=wlzs
person.age=20
person.birth=1999/01/21
person.maps.key1=value1
person.maps.key2=value2
person.lists=C++,Java,python
person.student.name=wzsl
person.student.age=21

“属性名区分大小写哦”

javaBean(Person的实体类):

@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    
    private String lastName;
    private Integer age;
    private Date birthday;

    private Map<String,Object> maps;
    private List<Object> lists;
    private Student student;
    
    //get和set方法
    //toString方法 方便检验输出
public class Student {

    private String name;

    private Integer age;
    
    //get和set方法
    //toString方法 方便检验输出
  • @ConfigurationProperties: 告诉springboot将本类中的所有属性和配置文件中的值进行绑定

  • 只有组件在容器中时,才能提供绑定功能,所以通过@Component将组件放入容器中

    通过测试类进行输出

    Person{lastName='wlzs', age=20, birthday=Thu Jan 21 00:00:00 CST 1999, maps={key1=value1, key2=value2}, lists=[C++, Java, python], student=Student{name='wzbl', age=21}}
    
发布了14 篇原创文章 · 获赞 1 · 访问量 247

猜你喜欢

转载自blog.csdn.net/qq_41454682/article/details/104951861