因为yml格式的配置文件很人性化,所以我想用. yml文件替换项目中的所有. properties,但麻烦的是springboot是1.5或更高版本@configurationProperties的位置
publicvoidonapplicationevent (应用程序环境虚拟现实事件) {
resourceloaderloader=newdefaultresourceloader (;
yamlpropertysourceloaderyamlloader=newyamlpropertysourceloader (;
List yamlFilePaths=new ArrayList (;
while (真)。
stringyamlfilepath=environment.getproperty (' load.YAML [ ' I ' ] );
if (YAML文件路径==null ) {
布雷克;
}
I;
if ('.equals (YAML文件路径) )。
继续;
}
yamlfilepaths.add (YAML文件路径);
}
yamlfilepaths.foreach (file path-{
try {
环境. getproperty sources (.add last ) YAMLloader.load )文件路径,loader.getresource ) (文件路径,null ) );
}catch(ioexceptione ) {
logger.error (loadpropertyfilefailed! 文件: '文件路径;
thrownewruntimeexception(e;
}
);
}
这里主要实现了spring boot的应用监听器接口,spring boot为我们提供了四种拦截事件:
1.applicationstartedeventspringboot启动后立即触发事件
2 .在applicationenvironemntpreparedeventspringboot已完成环境装载但尚未开始装载applicationContext时触发(例如
3.applicationpreparedeventspringboot已完成上下文的创建,但尚未完全装载bean
4.applicationfailedeventspringboot启动异常时触发。
spring boot内部本身有很多监听器。 他们各自监听着上面的几个案件,所以这里不做说明。 感兴趣的同学可以研究一下spring boot的源代码。
详细介绍Spring Boot :请单击此处
Spring Boot下载地址:请单击此处