基础:自定义属性
application.properties为我们提供自定义属性的配置,比如在application.properties文档中写:
people:
name:druid
age:28
我们如果想读取该配置文件属性,使用@Value{}标签即可,如下:
@RestController
public class PeopleController {
@Value("${people.name}")
private String name;
@Value("${people.age}")
private int age;
@RequestMapping(value = "/people")
public String miya(){
return name+":"+age;
}
}
演变:使用bean
配置文件还是上面的,我们需要新建一个JavaBean类,如Peopel类
@ConfigurationProperties(prefix = "people")
@Component
public class PeopleBean {
private String name;
private int age;
...
省略了getter setter....
PeopleController 类也要做相应的改变,新加一个@EnableConfigurationProperties{}标签,用来指明是那个Bean,如下:
@RestController
@EnableConfigurationProperties({PeopleBean.class})
public class PeopleController {
@Autowired
PeopleBean peopleBean;
@RequestMapping(value = "/people")
public String myPeople(){
return peopleBean.getName()+" >>>>"+ peopleBean.getAge();
}
使用自定义配置文件
我们为什么不自己定义个配置文件,非要使用提供给我们的呢,比如我们创建了一个名为custom.properties的配置文件,如下:
com.custom.name=druid
com.custom.age=12
将其赋给User类,需要新加一个@PropertySource标签
如
@Configuration
@PropertySource(value = "classpath:custom.properties")
@ConfigurationProperties(prefix = "com.custom")
public class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
多环境配置文件的切换
· application-dev.properties:开发环境
· application-prod.properties:生产环境
java -jar xxx.jar --spring.profiles.active=dev
使用这个指令,可以切到dev文件.