加载外部类的几种方式
- 使用@Configuration + @Bean 的方式引入
- 使用@Configuration + @ImportResource 方式引入
- 使用@Configuration + @Import 方式引入
加载配置文件中的属性的方式
- @Value("${}") 加载单一的配置文件
person.last-name=张三3333333333${random.uuid}
application.properties 文件中
@Value("${person.last-name}")
private String lastName;
- 使用@Component、@ConfigurationProperties(prefix = “person”) 从全局的默认配置文件中加载属性
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
}
application.properties文件中
person.last-name=张三3333333333${random.uuid}
person.age=${random.int}
person.birth=2017/12/15
person.boss=false
person.maps.k1=v1
person.maps.k2=14
person.lists=a,b,c
person.dog.name=${person.hello:hello}_dog
person.dog.age=15
- 使用 @Component、@ConfigurationProperties 、@PropertySource 三个注解 从指定位置加载属性
@PropertySource(value = {"classpath:person.properties"})
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String lastName;
private Integer age;
private Boolean boss;
private Date birth;
private Map<String,Object> maps;
private List<Object> lists;
private Dog dog;
}
classPath 路径下 person.properties 文件中
person.last-name=李四
person.age=12
person.birth=2017/12/15
person.boss=false
person.maps.k1=v1
person.maps.k2=14
person.lists=a,b,c
person.dog.name=dog
person.dog.age=15
profiles
application.yml 中的文档块模式
server:
port: 8081
spring:
profiles:
active: prod # 激活指定配置文件
---
server:
port: 8083
spring:
profiles: dev
---
server:
port: 8084
spring:
profiles: prod # 该文件被激活
在启动jar包的时候 动态指定jar的端口号
java -jar demo.jar --spring.profiles.active=dev
配置虚拟机参数
-Dspring.profiles.active=dev
在启动jar的时候指定外部的配置文件
java -jar demo.jar --spring.config.location=G:/application.properties
配置文件的加载顺序
- 在相同位置的application.properties 和application.yml 配置文件的加载顺序:从上到下加载,谁在上就加载谁
application.properties
server.port=8082
application.yml
server:
port: 8081
application.properties 在 application.yml 之上,所以启动的端口号 是8082