spring无法读取properties文件数据问题详解
1.controller中无法读取config.properties文件
controller中注入的@Value配置是从servlet-context.xml配置文件中获取的;service中注入的@Value配置可以从applicationContext.xml中获取的。所以,如果要在controller中注入属性配置,需要在相应servlet文件中添加配置,同applicationContext.xml中一样。
classpath:jdbc.properties classpath:config.properties
2.service中无法读取config.properties文件
查看配置文件是否有多个。如果配置的路径是classpath:config.properties,鼠标点击文件。如果显示”multipleimplementations”,表示有多个文件,查看其他的文件中是否有需要的配置项,没有的话,很可能就是加载了其他文件的配置项。这时,将路径改为classpath*:config.properties即可。
查看日志,发现:
[2017-01-0516:45:02INFO][main](org.springframework.context.support.PropertySourcesPlaceholderConfigurer:?)-LoadingpropertiesfilefromURL[jar:file:/home/admin/creative-task/lib/xxxx-common-1.5.7.jar!/config.properties] [2017-01-0516:45:02INFO][main](org.springframework.context.support.PropertySourcesPlaceholderConfigurer:?)-LoadingpropertiesfilefromURL[file:/home/admin/creative-task/conf/config.properties]
加载了两个config.properties文件。
3.关于诊断:
1)首先确认是否正确加载了配置文件。查看日志:
正常日志如下:
[2017-01-0516:45:02INFO][main](org.springframework.context.support.PropertySourcesPlaceholderConfigurer:?)-LoadingpropertiesfilefromURL[file:/home/admin/creative-task/conf/config.properties]
异常日志如下:
[2017-01-0516:39:39ERROR][main](Main:22)-Couldnotloadproperties;nestedexceptionisjava.io.FileNotFoundException:classpathresource[config.properties]cannotbeopenedbecauseitdoesnotexist org.springframework.beans.factory.BeanInitializationException:Couldnotloadproperties;nestedexceptionisjava.io.FileNotFoundException:classpathresource[config.properties]cannotbeopenedbecauseitdoesnotexist
如果文件没有加载,则查看路径是否匹配等。
2)如果文件加载ok,查看配置属性是否正确加载。
查看tomcat启动的debug日志:
正常日志如下:
[2017-01-0516:45:04DEBUG][main](org.springframework.core.env.PropertySourcesPropertyResolver:?)-Searchingforkey'adx.id'in[environmentProperties] [2017-01-0516:45:04DEBUG][main](org.springframework.core.env.PropertySourcesPropertyResolver:?)-Searchingforkey'adx.id'in[systemProperties] [2017-01-0516:45:04DEBUG][main](org.springframework.core.env.PropertySourcesPropertyResolver:?)-Searchingforkey'adx.id'in[systemEnvironment] [2017-01-0516:45:04DEBUG][main](org.springframework.core.env.PropertySourcesPropertyResolver:?)-Couldnotfindkey'adx.id'inanypropertysource.Returning[null] [2017-01-0516:45:04DEBUG][main](org.springframework.core.env.PropertySourcesPropertyResolver:?)-Searchingforkey'adx.id'in[localProperties] [2017-01-0516:45:04DEBUG][main](org.springframework.core.env.PropertySourcesPropertyResolver:?)-Foundkey'adx.id'in[localProperties]withtype[String]andvalue'1'
异常日志如下:
[2017-01-0516:34:01DEBUG][main](org.springframework.core.env.PropertySourcesPropertyResolver:?)-Searchingforkey'adx.id'in[environmentProperties] [2017-01-0516:34:01DEBUG][main](org.springframework.core.env.PropertySourcesPropertyResolver:?)-Searchingforkey'adx.id'in[systemProperties] [2017-01-0516:34:01DEBUG][main](org.springframework.core.env.PropertySourcesPropertyResolver:?)-Searchingforkey'adx.id'in[systemEnvironment] [2017-01-0516:34:01DEBUG][main](org.springframework.core.env.PropertySourcesPropertyResolver:?)-Couldnotfindkey'adx.id'inanypropertysource.Returning[null] [2017-01-0516:34:01DEBUG][main](org.springframework.core.env.PropertySourcesPropertyResolver:?)-Searchingforkey'adx.id'in[localProperties] [2017-01-0516:34:01DEBUG][main](org.springframework.core.env.PropertySourcesPropertyResolver:?)-Couldnotfindkey'adx.id'inanypropertysource.Returning[null]
更多关于spring读取properties文件数据的文章请查看下面的相关文章
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。