一. 演示yml中的属性注入到bean中<@ConfigurationProperties(prefix = "person")>
1. 创建application.yml文件或者application.properties文件,在里面设置person的相关信息
2. 在Person.java文件中加上@ConfigurationProperties(prefix = "person"),表示属性配置的值来自配置文件中的person相关的配置
二. 引入person.properties文件<@PropertiesSource(value = "{classpath:person.properties}")>
1. 在Person类中加入@PropertySource(value = {"classpath:person.properties"}) 引入person.properties文件,这样Person类就可以自动用person.properties中的值注入了
三. 引入beans.xml文件<@ImportResource(locations = {"beans.xml"})>
四. 配置类的使用<@Configuration>
1. 创建com.wzp.config.AppConfig.java
2. 在类上使用@Configuration,表示这是一个配置类,spring将会自定加载这个类,取代了applicationContext.xml文件
3. 创建public HelloService helloService(){return new HelloService();}方法,在方法上加上@Bean注解,表示将会有一个id为helloService的bean将会注入到spring容器中,相当于xml文件中的bean标签
五. 在配置文件中(yml,properties),可以使用占位符${}
1. ${random.uuid}:产生随机uuid
2. ${random.int}:产生随机整数
3. 或者可以用${}方式引用配置文件前面定义的值,
4.
${myAccount.name:xiaoming},表示用前面定义的值,如果没有定义就用默认值xiaoming
六. 多配置文件切换:application.properties文件中spring.profiles.active的使用
1. spring.profiles.active=dev,将会使用application-dev.properties文件中的配置
2. spring.profiles.active=prod,将会使用application-prod.properties文件中的配置
七. application.yml配置文件多段切换,用---进行切换:
1. 配置run时的虚拟机参数:-Dspring.profiles.active=dev
1. 配置run参数,program argument:--spring.profiles.active=dev,也就是说可以java -jar XXX.jar --spring.profiles.active=dev的方式运行
2.或者直接在application.yml中用spring.profiles.active=dev指定
server:
port: 8080
#指定使用prod profiles
spring:
profiles:
active: prod
---
server:
port: 8081
spring:
profiles: dev
---
server:
port: 8082
spring:
profiles: prod
八. application.properties配置文件可以放在项目中不同位置:
1. 项目根目录/config文件夹下,优先级最高
2. 项目根目录下,优先级其次
3. classpath即resources下的config文件夹下,优先级再次
4. classpath即resources下,优先级最低
九. 在配置文件设置debug: true,可以以debug的模式启动(不是idea的debug模式),在控制台信息中可以查看哪些配置类生效,哪些没有生效
1. Positive matches==>生效的配置类
1. Negative matches==>没有生效的配置类