存放路径: src/main/resource目录或者类路径的/config
YAML文件格式是Spring Boot支持的一种JSON超集文件格式。
相较于传统的Properties配置文件,YAML文件以数据为核心,是一种更为直观且容易被电脑识别的数据序列化格式。
application.yaml文件的工作原理和application.properties一样。
1.使用@ConfigurationProperties注入属性
注意:使用@ConfigurationProperties注解批量注入属性值时,要保证配置文件中的属性与对应实体类的属性一致,否则无法正确获取并注入属性值。
2、在项目的类路径下新建一个test.properties自定义配置文件,在该配置文件中编写需要设置的配置属性。
4、在测试类中引入MyProperties实体类Bean对象,并新增一个测试方法进行输出测试
1、在chapter02项目下新建一个com.itheima.config包,并在该包下新创建一个类MyService,该类中不需要编写任何代码。
2、在resources目录下新建一个名为beans.xml的XML自定义配置文件,在该配置文件中通过配置向Spring容器中添加MyService类对象。
3、项目启动类上添加@ImportResource注解来指定XML文件位置。
4、在测试类中引入ApplicationContext实体类Bean,并新增一个测试方法进行输出测试。
1、在现有的项目基础上新建一个类MyConfig,使用@Configuration注解将该类声明一个配置类。
2、在项目启动类上添加的@ImportResource注解注释,执行项目测试类中的测试方法iocTest(),查看控制台输出效果,结果如图。
前言
项目在开发过程中,会有几个不同的环境如开发、测试、生产等,每个环境的数据库地址、服务器端口等的配置不同,则需要通过配置文件,进行多环境的应用配置。Spring Boot进行项目开发,可以轻松与各种工具、框架集成,开发过程中,离不开各种配置文件的处理,例如某公司资产管理系统在开发过程中,除了需要对服务器、数据访问、系统属性等进行配置,还需要对一些默认配置值进行修改。
学习目标
-
掌握Spring boot全局配置的使用
-
掌握Spring boot配置文件属性值注入
-
了解Profile多环境配置
一、全局配置文件
-
Spring Boot 全局配置文件
Spring Boot的全局配置文件:
存放路径: src/main/resource目录或者类路径的/config
-
Application.properties配置文件
自定义属性设置的示例
server.address=80
server.port=8443
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.config.additional-location=
spring.config.location=
spring.config.name=application
更多配置属性,详见官网https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
-
Application.yaml 配置文件
概念
-
YAML文件格式是Spring Boot支持的一种JSON超集文件格式。
-
相较于传统的Properties配置文件,YAML文件以数据为核心,是一种更为直观且容易被电脑识别的数据序列化格式。
-
application.yaml文件的工作原理和application.properties一样。
语法格式
key:(空格)value
示例代码
server:
port: 8081
path: /hello
YAML文件中的value值类型不同,写法不同
1.value的值为普通数据类型
server:
port: 8081
path: /hello
2.value的值为数组和单列集合
缩进式写法
person:
hobby:
- play
- read
- sleep
行内式写法
person:
hobby: [play,read,sleep]
3.value的值为Map集合或对象
缩进式写法
person:
map:
k1: v1
k2: v2
行内式写法
person:
map: {k1: v1,k2: v2}
二、属性值注入
1.使用@ConfigurationProperties注入属性
相关注解
示例代码
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private int id;
public void setId(int id) {
this.id = id;}}
注意:使用@ConfigurationProperties注解批量注入属性值时,要保证配置文件中的属性与对应实体类的属性一致,否则无法正确获取并注入属性值。
2.使用@Value注入属性
相关注解
示例代码
@Component
public class Person {
@Value("${person.id}")
private int id;
}
使用@Value注解对每一个属性注入设置,免去了属性setXX()方法
3. 两种注解的对比分析
三、自定义配置和多环境配置
1.Spring Boot自定义配置
使用@PropertySource加载配置文件
相关注解:
案例演示
1、创建Spring Boot项目,添加Web依赖。
2、在项目的类路径下新建一个test.properties自定义配置文件,在该配置文件中编写需要设置的配置属性。
#对实体类对象MyProperties进行属性配置
test.id=110
test.name=test
3、在com.itheima.domain包下新创建一个配置类MyProperties,提供test.properties自定义配置文件中对应的属性,并根据@PropertySource注解的使用进行相关配置。
@Configuration
@PropertySource("classpath:test.properties
@EnableConfigurationProperties(MyProperties.class) @ConfigurationProperties(prefix = "test
public class MyProperties {
}
4、在测试类中引入MyProperties实体类Bean对象,并新增一个测试方法进行输出测试
@Autowired
private MyProperties myProperties;
@Test
public void myPropertiesTest() {
System.out.println(myProperties);
}
5、查看测试结果,如图所示
使用@ImportResource加载XML配置文件
相关注解:
案例演示
1、在chapter02项目下新建一个com.itheima.config包,并在该包下新创建一个类MyService,该类中不需要编写任何代码。
public class MyService {
}
2、在resources目录下新建一个名为beans.xml的XML自定义配置文件,在该配置文件中通过配置向Spring容器中添加MyService类对象。
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="myService" class="com.itheima.config.MyService" />
</beans>
3、项目启动类上添加@ImportResource注解来指定XML文件位置。
@ImportResource("classpath:beans.xml")
4、在测试类中引入ApplicationContext实体类Bean,并新增一个测试方法进行输出测试。
@Autowired
private ApplicationContext applicationContext;
@Test
public void iocTest() {
System.out.println(applicationContext.containsBean("myService"));
}
5、测试结果如图所示。
使用@Configuration编写自定义配置类
相关注解:
案例演示
1、在现有的项目基础上新建一个类MyConfig,使用@Configuration注解将该类声明一个配置类。
@Configuration
public class MyConfig {
@Bean
public MyService myService(){
return new MyService();
}
}
2、在项目启动类上添加的@ImportResource注解注释,执行项目测试类中的测试方法iocTest(),查看控制台输出效果,结果如图。
Profile多环境配置
使用@Profile文件进行多环境配置
多环境配置文件格式
application-{profile}.properties
注:{profile}对应具体的环境标识
激活指定环境的方式
相关注解
@ Profile:作用于类,通过value属性指定环境配置
激活指定环境的方式
在全局配置文件中配置spring.profiles.active属性