Spring Boot ——Spring Boot配置

一、配置文件

1、Spring Boot使用一个全局得到配置文件,有两种形式

  • application.properties

  • application.yml

2、作用:修改Spring Boot的自动配置的默认值,Spring Boot底层会自动帮我们配置好。

3、yml认识,全称(YAML Ain't Markup Language),是一个标记语言。

  • 对比,以前的配置文件;大都使用xml格式的文件,现在yml配置文件比xml、json格式更适合做配置文件,简单方便。

  • 如例:

yml格式

server:
  port: 8090

xml格式

<server>
   <port>8090</port>
</server>

二、yml语法

1、基本语法

  • yml文件中是以键值对的形式来进行一些手动需要的配置,格式如:key:(空格)value 即可,注意,这里面一定要带上空格。

  • 每一层级关系,我们需要通过空格缩进来指引其属于哪一层级,只要左对齐的一列数据,都属于同一层级的。

如:

server:
  port: 8090
  error:
    path:

2、属性值的配置敏感,需按规定配置

  • 基本数值(数字、字符串、布尔值),这里包含字符串
    a. 直接以key: value按照字面数值直接写;

    b. 字符串默认不需要加单双引号;

  • 对象值、Map,还是以键值对存在
    key: value,直接在对象的下一行写属性和值,需要注意

person:                     
      name: xiaoming                    
      age: 18

也可以行内写法,其实也还是键值对的衍生

person: {name: xiaoming,age: 18}
  • 数组、List、Set
    用“- 值”表示数组中的一个元素
animals:
       - dog
       - cat

行内写法

animals: [dog,cat]

三、从配置文件中获取值

将配置文件中的值映射到组件中

yml配置文件

server:
  port: 8090
  
person:
  name: xiaoming
  age: 18
  student: false
  birth: 2015/12/23
  maps: {k1: v1,k2: v2}
  lists:
    - xiaoming
    - xiaohong
  cat:
    name: xiaomi
    age: 2
 

javaBean:

package com.example.springboot02.bean;
 
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
 
import java.util.Date;
import java.util.List;
import java.util.Map;
 
/**
 * 将配置文件中配置的每一个属性的值映射到这个组件中
 * @ConfigurationProperties:告诉SpringBoot将来类中的所有属性和配置文件中相关的配置进行绑定,
 *     prefix = "person":配置文件中哪个下面的所有属性进行映射
 *
 *     只有这个组件是容器中的组件,才能使用容器提供的@ConfigurationProperties功能
 */
@Component//将这个组件放入容器中
@ConfigurationProperties(prefix = "person")
public class Person {
 
    private String name;
    private Integer age;
    private Boolean student;
    private Date birth;
 
    private Map<String, Object> maps;
    private List<Object> lists;
    private Cat cat;
 
   ...
}
 

单元测试

@RunWith(SpringRunner.class)
@SpringBootTest//表示Spring Boot的一个单元测试
class Springboot02ApplicationTests {
 
    @Autowired
    Person person;
 
    @Test
    void contextLoads() {
        System.out.println(person);
    }
 
}

上一篇:Spring Boot ——@SpringBootApplication及其相关注解
下一篇: Spring Boot ——@ConfigurationProperties 、 @Value 、 @PropertySources 、@Configuration 、@Bean and so on

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容