SpringBoot中的properties公共与自定义配置文件
一.pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
二.自定义文件配置
yangxiaotong.name=yang
yangxiaotong.sex=nan
yangxiaotong.age=18
@Configuration
@PropertySource("classpath:yangxiaotong.properties")
@ConfigurationProperties(prefix="yangxiaotong")
public class YangBen {
public String name;
public String sex;
public String getName() {
return name;
}
public String getSex(){
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public void setName(String name) {
this.name = name;
}
}
@RestController
@RequestMapping("/hh")
@EnableConfigurationProperties(YangBen.class)
public class YangController {
@Autowired
YangBen yangBen;
@Value("${yangxiaotong.name}")
private String name;
@Value("${yangxiaotong.sex}")
private String sex;
@RequestMapping("/dier")
public String dier(){
return "name:"+yangBen.getName()+"sex:"+yangBen.getSex();
}
}
三.公共文件
liu.name=liu
liu.sex=nv
liu.age=18
@Component
@ConfigurationProperties(prefix="liu")
public class LiuBen {
public String name;
public String sex;
public String getName() {
return name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public void setName(String name) {
this.name = name;
}
}
@RestController
@RequestMapping("/zz")
@EnableConfigurationProperties(LiuBen.class)
public class LiuController {
@Autowired
LiuBen liuBen;
@Value("${liu.name}")
private String name;
@Value("${liu.sex}")
private String sex;
@RequestMapping("/ww")
public String dier(){
return "name:"+liuBen.getName()+"sex:"+liuBen.getSex();
}
}
四.总结
先在properties写好数据,再创建对应Bean文件。
Bean文件:公用配置@Component标注,自定义文件@Configuration标注,@Configuration注解侧重配置。公用类上只需加@ConfigurationProperties(prefix=“key”) ,自定义文件还需@PropertySource(“classpath:自定义文件.properties”)
控制器端:类上都加@RestController。下写@EnableConfigurationProperties(javaBean名.class).