Spring Boot 02

Posted lemonades

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot 02相关的知识,希望对你有一定的参考价值。

YAMl配置文件:

Spring Boot有两种配置文件 application.properties  和  application.yml  ,名称是固定不变的,yaml是一种比 xml  json 更适合的配置文件,不用关注属性的开闭。

1 语法格式:

key:(空格)value       必须要有空格,以换行、空格的缩进来代表层级关系,并且大小写敏感

server:
  port: 8080

 2 值的写法:

字面量:普通数值(数字,字符串,布尔)

map、list、 对象:

person:
  lastName: yanghui
  age: 21
  birthday: 1998/08/02
maps: x: yang,n: huiyi list: - yang - huiyi dog: name: 小狗 age: 3

 

3 配置文件自动注入: @ConfigurationProperties(prefix = "person") 注解:告诉springboot将本类的所有属性和配置文件的内容进行绑定; prefix = "person" 和person进行绑定

          @Component 注解:把类加入到 容器中,这样才能使用ConfigurationProperties

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

    private Map<String,Object> maps;
    private List<Object> list;
    private Dog dog;

    ...

 

4 添加配置文件处理器:想要让上边的注释生效,需要添加配置文件处理器。

官方文档:https://docs.spring.io/spring-boot/docs/2.1.9.RELEASE/reference/html/configuration-metadata.html#configuration-metadata-annotation-processor

        <!--配置文件处理器:当编写配置文件的时候会有提示。-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

 

5 其他:如果只是要在配置文件中简单获取 某个值,则可以使用 @Value

    @Value("$person.lastName")
    private  String lastName;

 6 其他2:加载类路径下的其他配置文件 @PropertySource(value = "classpath:person.properties"),原本不指定会指向application.properties。

@PropertySource(value = "classpath:person.properties")
@Component
@ConfigurationProperties(prefix = "person")
public class Person 
    /**
     * 如果只是要在配置文件中简单获取 某个值,则可以使用 @Value
     * @Value("$person.lastName")
     */
    private  String lastName;
    private Integer age;
    private Date birthday;

    private Map<String,Object> maps;
    private List<Object> list;
    private Dog dog;

 加载spring的配置文件@ImportResource(locations = "classpath:beans.xml") 加在主程序上边的注释   -----》不推荐使用。

@ImportResource(locations = "classpath:beans.xml")
@SpringBootApplication
public class DemoApplication 

    public static void main(String[] args) 
        SpringApplication.run(DemoApplication.class, args);
    


 推荐使用:@Configuration  来标注一个类是配置类,用来代替上边的spring配置文件

 7 Profile 多环境支持: 使用多种配置文件,生产环境下的配置文件,测试环境下使用的配置文件。

具体详细查一下课程笔记的文档

 

8 配置文件可以位于不同位置:不同位置配置文件的优先级不同,高优先级的配置文件会覆盖相同内容的配置文件,但是不相同的会形成互补

当前项目的根目录 里的 config

当前项目的根目录

resource资源文件夹 里的 config

resource资源文件夹

–?le:./con?g/
–?le:./ 
–classpath:/con?g/ 
–classpath:/

 *从上往下优先级降低*

 

官方配置文件文档:https://docs.spring.io/spring-boot/docs/2.1.9.RELEASE/reference/html/common-application-properties.html

 

解决配置文件 application.properties 乱码问题: 在settings查找file Encodings  ;选择utf-8   ,勾选运行时编译成 ascii 编码。

 

技术图片

 

以上是关于Spring Boot 02的主要内容,如果未能解决你的问题,请参考以下文章

spring_boot_入门02

02-第一个Spring Boot应用程序

Spring Boot 学习例子

Spring Boot 02

跟我学Spring Boot创建Spring Boot 项目

第02课:Spring Boot 进阶