(1)application.properties
(2)application.yml
(3)原理一样,格式不同,当两种格式的核心配置文件同时存在时,2.4.0以上的版本的SpringBoot优先使用以.yml为后缀的核心配置文件,2.4.0以下版本的SpringBoot优先使用.properties为后缀的核心配置文件。
(4)其他相关配置可查询
https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
二、自定义配置信息&属性注入属性注入(将配置文件内的属性注入都对应的类对象当中)
(1)@Value:在配置文件内定义好学生信息,在学生类中使用注解@Value注入
package com.cld.demo.bean;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;@Componentpublic class Student { @Value("${student.name}") private String name; @Value("${student.classes}") private String classes; public String getName() { return name; } public String getClasses() { return classes; }} @Autowired Student student; @Test public void testStudent(){ System.out.println("学生姓名:" + student.getName()); System.out.println("学生班级:" + student.getClasses()); }(2)@ConfigurationProperties(prefix = "teacher"):在配置文件内定义好教师信息,在教师类内批量注入(教师类内需要提供setter方法,才能够注入)
package com.cld.demo.bean;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.PropertySource;import org.springframework.stereotype.Component;@Component@ConfigurationProperties(prefix = "teacher")public class Teacher { private String name;//姓名 private Integer age;//年龄 private String classes;//班级 public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getClasses() { return classes; } public void setClasses(String classes) { this.classes = classes; }} @Autowired Teacher teacher; @Test public void testTeacher(){ System.out.println("教师姓名:" + teacher.getName()); System.out.println("教师年龄:" + teacher.getAge()); System.out.println("教师班级:" + teacher.getClasses()); } 三、自定义配置文件和自定义配置类1、@PropertySource加载自定义配置文件:当把所有的配置信息都写在核心配置文件的时候,就会出现配置文件配置信息内容过多,不便查询和修改没课自定义配置存放不同情况的配置信息。要使用自定义配置文件,需要加载
新建自定义配置文件teacher.properties
在Teacher类内指定加载teacher.properties文件,并进行属性注入
注意:@PropertySource("classpath:teacher.properties")只能够加载properties格式的配置文件
2、@Configuration定义配置类,@Bean 注册Bean组件到IOC容器中
(1)定义一个MyService类
(2)编写MyConfig配置类
3、@ImportResource加载xml配置文件
(1)配置文件Beans.xml
(2)启动类加上@ImportResource("classpath:beans.xml")
四、多环境配置1、配置文件命名标识:application-(文件标识名).properties
分别编写测试环境的配置文件application-test.properties和生产环境的配置文件application-dev.properties,在核心配置文件application.properties里面通过spring.Profiles.active属性激活配置环境。
2、@Profile注解:标识不同的配置环境,作用于类
(1)配置类内编写
(2)激活
方式一:在核心配置文件内通过spring.profiles.active属性激活 方式二:@ActiveProfile激活@SpringBootTest@ActiveProfiles("service1")class DemoApplicationTests { @Autowired MyService myService; @Test public void testProfile(){ System.out.println(myService.say()); }}