• SpringBoot启动会加载大量的自动配置类
  • 我们看我们需要的功能有没有SpringBoot默认写好的自动配置类;
  • 我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件有,我们就不需要再来配置了)
  • 给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们就可 以在配置文件中指定这些属性的值;
    • xxxxAutoConfigurartion:自动配置类;给容器中添加组件
    • xxxxProperties:封装配置文件中的默认配置
  • 导入配置文件自动提示的包
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

配置文件占位符

${random.int}生成一个int的随机数 
${random.value}生成一个随机字符串
${random.long}生成一个long的随机数据
${random.int(10)}生成0-10的随机int数
${random.int[10,100]} 生到10-100的随机int数


${sutudent.name}读取ioc容器里面的student对象里的name属性
  1. 如果配置是写在properties里面只有Map不能取到
  2. 如果配置写在yml 数组 集合 都取不到
  3. 如果属性是使用驼峰命名法则不能使用属性名注入,要使用 @Value("${student.user-name}") 来取值不能使用 **@Value("${student.userName}")**来取值

yml语法

student:
  id: 1
  name: xiaoming
  age: ${a.age}
  hobby:
    - LOL
    - DNF
    - CF
    - LOL
  lists:
    - LOL
    - DNF
  maps:
    k1: v1
    k2: v2
  sets:
    - LOL
    - DNF
    - CF
    - LOL
  birth: 2019/12/12
a:
  age: ${random.int(1,100)}


server:
  port: 8088
#数据源
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/shiro?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC
    username: root
    password: 0
#配置mybatisplus
mybatis-plus:
  mapper-locations:
  - classpath:mapper/*Mapper.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#端口
server:
  port: 8080
spring:
  #数据源
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8&useSSL=true
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456
    #配置数据源的类型
    type: org.springframework.jdbc.datasource.DriverManagerDataSource