properties与yml配置文件
当application.propertie与application.yml同时存在时,使用application.properties作为配置文件
2. 多配置文件
- 可以使用多文件配置。文件名是约定俗成的。dev:开发; test:测试;online:上线。 在application.properties中使用图片中的语句激活某个配置文件。
- 同时,命名不是固定的,也可以:application-aa.properties; application-bb.properties; 激活文件的语句改成:
spring.profiles.active=aa
即可。
- 并且,当apolication.properties中存在与application-dev.properties同属性的配置时,生效激活的文件中的配置(假设这里激活了dev文件), 配置语句和激活语句的先后顺序无所谓。
但如果application.properties中配置了激活文件中没有配置的选项,则总文件中的配置激活。
例如:application.properties的内容:
spring.profiles.active=dev
#访问文件的路径
server.context-path=/springBoot
application-dev.properties的内容:
server.port=8080
则该项目的端口号为8080,且访问路径要加上/springBoot。
3. 自定义值
在spring的配置文件中可以自定义值。例如:
boot.name=自定义名称
boot.location=自定义地址
1. 使用@Value获取自定义值
在代码中这样使用:
@Controller
public class ConfigController{
@Value("${boot.name}")
private String name;
@ResponseBody
@RequestMapping("/hello")
public String hello(){
return name;
}
}
@Value 是spring的注解。访问/hello时,会返回 自定义名称 五个字。
2. 使用@ConfigurationProperties获取自定义值
自定义值仍然是:
boot.name=自定义名称
boot.location=自定义地址
使用@ConfigurationProperties获取,将值注入到类中,再使用类。
// 这个注解表示将这个类交给Spring管理
@Component
// 这个注解表示获取自定义值,prefix是前缀。
@ConfigurationProperties(prefix="boot")
public class ConfigTest{
private String name;
private String location;
// get、set方法...
}
然后在其他类中使用:
@Controller
public class ConfigController{
@Autowired
private ConfigTest configTest;
@ResponseBody
@RequestMapping("/config")
public String hello(){
return configTest.name+ "--" + configTest.location;
}
}
访问/config时,会返回 自定义名称—自定义地址 这几个字。