1、web项目启动,自动运行指定方法。
定义一个类实现CommandLineRunner接口的run方法
当项目启动后,会自动运行run方法
定义的类上需要加上注解@Component
@Component
public class MyCommandLineRunner implements CommandLineRunner{
@Override
public void run(String... var1) throws Exception{
System.out.println("This will be execute when the project was started!");
}
}
2、读取配置文件的信息
2种方法。
spring boot 配置文件可以是application.properties和application.yml
相对来说yml的内容格式更加人性化,推荐使用。
假设application.yml内容如下:
spring :
task :
pool :
corePoolSize : 4
maxPoolSize : 8
keepAliveSeconds : 60
queueCapacity : 20
sina:
account :
- name : name1
password: pwd1
- name : name2
password: pwd2
- name : name3
password: pwd3
- name : name4
password: pwd4
project :
name : demo
第一种:
直接获取单个属性数据
@Value("${project.name}")
private String name;
第二种:
装配进一个对象中
首先定义一个对象:
类上加上注解@ConfigurationProperties(prefix = “spring.task.pool”)
prefix表示自动配置前缀为spring.task.pool的属性值到对象中
@ConfigurationProperties(prefix = "spring.task.pool")
public class TaskThreadPoolConfig {
private int corePoolSize;
private int maxPoolSize;
private int keepAliveSeconds;
private int queueCapacity;
public int getCorePoolSize() {
return corePoolSize;
}
public void setCorePoolSize(int corePoolSize) {
this.corePoolSize = corePoolSize;
}
public int getMaxPoolSize() {
return maxPoolSize;
}
public void setMaxPoolSize(int maxPoolSize) {
this.maxPoolSize = maxPoolSize;
}
public int getKeepAliveSeconds() {
return keepAliveSeconds;
}
public void setKeepAliveSeconds(int keepAliveSeconds) {
this.keepAliveSeconds = keepAliveSeconds;
}
public int getQueueCapacity() {
return queueCapacity;
}
public void setQueueCapacity(int queueCapacity) {
this.queueCapacity = queueCapacity;
}
}
使用的时候,直接在需要用到的类中注入该类就可以
@Autowired
private TaskThreadPoolConfig config;
装载集合数据:
@ConfigurationProperties(prefix="sina")
public class Sina {
private List<Account> account = new ArrayList<>();
//省略getter和setter方法
}
3、多环境配置
开发,测试和生产环境:
在application.yml同级下新建:
application-dev.properties //开发环境的配置文件
application-test.properties //测试环境的配置文件
application-prod.properties //生产环境的配置文件
在application.yml中增加配置:
spring:
profiles:
active: dev
#引用测试的配置文件
#active: test
#引用生产的配置文件
#active: prod