springboot虽然免除了绝大部分的配置文件设置,但是对于一些特定情况,还是有定义配置文件的需要。
一、配置文件的格式
SpringBoot可以识别.yml和.properties两种格式的配置文件。如果是自带classpath下的application.properties和application.yml,这两种都可以被SpringBoot自动识别并加载。
在application.properties,通过spring.profiles.active=xxx可以指定不同环境激活不同的配置文件,设置的激活参数dev, test, prod,对应的配置文件有:
application-dev.properties
application-test.properties
application-prod.properties
如果是自定义的配置文件,最好还是使用properties格式,因为SpringBoot中暂时还并未提供手动加载yml格式文件的功能。
二、自定义配置文件
1、自定义配置文件,如:
url.name=editMessage url.path=100120171116031838
2、定义获取配置文件的bean
@Component @ConfigurationProperties(prefix = "url")
@PropertySource("classpath:config.properties",encoding = "utf-8") @Data public
class PropertiesEnv { private String name; private String path; }
3、通过注入配置文件的Bean使用属性
@Autowired PropertiesEnv propertiesEnv ;
4、用@Value注解使用
5、使用Environment
先注入@Autowired private Environment env;
然后env.getProperty("url.name")
6、自实现PropertiesLoaderUtils
7、SpringBoot中使用@Value()只能给普通变量注入值,不能直接给静态变量赋值,如果要赋值给静态变量,可以使用