SpringBoot005

1.配置文件基本使用

使用.yml配置文件,在resources目录下新建application.yml文件

server:
  port: 8081 #修改端口号
  servlet:
    context-path: /lk  #端口号后需额外添加字符
#以上等同于application.properties的以下写法
#server.port=8081
#server.servlet.context-path=/zed

swagger:
  title: SpringBoot学习
  description: SpringBoot学习
  version: 1.0.0
  name: lk
  url: https://pallcard.github.io
  email: 1250585541@qq.com

  • 其中空格有严格的要求
2.切换配置文件

在resources目录下新建application-dev.yml文件,application-prod.yml文件

//文件目录
resources|-
         application.yml
         application-dev.yml
         application-prod.yml

其中application.yml来切换配置文件

spring:
  profiles:
    active: dev

激活文件选择

  • 使用上述application.yml来设置
  • 使用java -jar ***.jar --spring.profiles.active=dev;
  • IDEA中可以如下设置SpringBoot005_第1张图片
3.配置文件使用
  • 单值注入 (.yml中值若用双引号,转义字符会转义)
//.yml中
person:
  name: zhangsan \n lisi
  name2: 'zhangsan \n lisi'
  name3: "zhangsan \n lisi"
  age: 18
  boss: false

//使用
    @Value("${person.name}")
    private String name;

    @Value("${person.name2}")
    private String name2;


    @Value("${person.name3}")
    private String name3;

    @Value("${person.age}")
    private String age;

    @Value("${person.boss}")
    private String boss;
  • 批量注入
//application.yml
student:
  name: lk
  age: 23
  boss: false
  birth: 1997/1/1
  maps: {k1: v1, k2: v2}
  lists:
  - 张三
  - 李四
  dog:
    name: 小黑
    age: 2
    
// pojo.Student
@ConfigurationProperties(prefix = "student")
@Component
@Data
public class Student {
    private String name;
    private Integer age;
    private Boolean boss;
    private Date birth;
    private Map<String, Object> maps;
    private List<String> lists;
    private Dog dog;
}
// pojo.Dog 
@Data
public class Dog {
    private String name;
    private Integer age;
}

//值注入
 @Autowired
 private Student student;

  • 将配置文件中配置的每一个属性的值,映射到这个组件中
  • @ConfigurationProperties:告诉SpringBoot将本类中的所有属性和配置文件中相关的配置进行绑定;
  • prefix = “person”:配置文件中哪个下面的所有属性进行一一映射
  • 只有这个组件是容器中的组件,才能使用容器提供的@ConfigurationProperties功能;
  • @Data是一个插件,免去了getter/setter和toString这些繁琐的东西
4.两种注入区别
@ConfigurationProperties @Value
功能 批量注入配置文件中的属性 一个个指定
松散绑定(松散语法) 支持 不支持
SpEL: #{} 不支持 支持
JSR303数据校验 支持 不支持
复杂类型封装 支持 不支持

松散语法绑定:last_name = last-name = lastName 他们取的值都是相同的

参考:https://zed058.cn

你可能感兴趣的:(springBoot)