怎么读取Spring 的配置文件applicationContext.xml-CSDN论坛
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么读取Spring 的配置文件applicationContext.xml-CSDN论坛相关的知识,希望对你有一定的参考价值。
参考技术A 应该是在web.xml中配置如:
<servlet>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:org/config/applicationContext-*.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
路径就是包名.some.xml
仅供参考本回答被提问者和网友采纳
spring无法读取properties文件数据
只讲述异常点,关于怎么配置文件,这里不做说明。
1. controller中无法读取config.properties文件
controller中注入的@Value配置是从servlet-context.xml配置文件中获取的;service中注入的@Value配置可以从applicationContext.xml中获取的。所以,如果要在controller中注入属性配置,需要在相应servlet文件中添加配置,同applicationContext.xml中一样。
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
<value>classpath:config.properties</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="true"/>
</bean>
2.service中无法读取config.properties文件
查看配置文件是否有多个。如果配置的路径是classpath:config.properties, 鼠标点击文件。如果显示”multiple implementations”, 表示有多个文件,查看其他的文件中是否有需要的配置项,没有的话,很可能就是加载了其他文件的配置项。这时,将路径改为classpath*:config.properties即可。
<context:property-placeholder
ignore-unresolvable="true" location="classpath:/jdbc.properties, classpath*:/config.properties"/>
查看日志,发现:
[2017-01-05 16:45:02 INFO ] [main] (org.springframework.context.support.PropertySourcesPlaceholderConfigurer:?) - Loading properties file from URL [jar:file:/home/admin/creative-task/lib/xxxx-common-1.5.7.jar!/config.properties]
[2017-01-05 16:45:02 INFO ] [main] (org.springframework.context.support.PropertySourcesPlaceholderConfigurer:?) - Loading properties file from URL [file:/home/admin/creative-task/conf/config.properties]
加载了两个config.properties文件。
3.关于诊断:
1)首先确认是否正确加载了配置文件。查看日志:
正常日志如下:
[2017-01-05 16:45:02 INFO ] [main] (org.springframework.context.support.PropertySourcesPlaceholderConfigurer:?) - Loading properties file from URL [file:/home/admin/creative-task/conf/config.properties]
异常日志如下:
[2017-01-05 16:39:39 ERROR] [main] (Main:22) - Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [config.properties] cannot be opened because it does not exist org.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: class path resource [config.properties] cannot be opened because it does not exist
2)如果文件加载ok,查看配置属性是否正确加载。
查看tomcat启动的debug日志:
正常日志如下:
[2017-01-05 16:45:04 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Searching for key ‘adx.id‘ in [environmentProperties] [2017-01-05 16:45:04 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Searching for key ‘adx.id‘ in [systemProperties] [2017-01-05 16:45:04 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Searching for key ‘adx.id‘ in [systemEnvironment] [2017-01-05 16:45:04 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Could not find key ‘adx.id‘ in any property source. Returning [null] [2017-01-05 16:45:04 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Searching for key ‘adx.id‘ in [localProperties] [2017-01-05 16:45:04 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Found key ‘adx.id‘ in [localProperties] with type [String] and value ‘1‘
异常日志如下:
[2017-01-05 16:34:01 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Searching for key ‘adx.id‘ in [environmentProperties] [2017-01-05 16:34:01 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Searching for key ‘adx.id‘ in [systemProperties] [2017-01-05 16:34:01 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Searching for key ‘adx.id‘ in [systemEnvironment] [2017-01-05 16:34:01 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Could not find key ‘adx.id‘ in any property source. Returning [null] [2017-01-05 16:34:01 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Searching for key ‘adx.id‘ in [localProperties] [2017-01-05 16:34:01 DEBUG] [main] (org.springframework.core.env.PropertySourcesPropertyResolver:?) - Could not find key ‘adx.id‘ in any property source. Returning [null]
如果配置属性没有正确加载,查看属性配置的key是否正确。
以上是关于怎么读取Spring 的配置文件applicationContext.xml-CSDN论坛的主要内容,如果未能解决你的问题,请参考以下文章
如何在spring中读取properties配置文件里面的信息
spring boot框架学习学前掌握之重要注解-通过注解方式读取外部资源配置文件2
springboot怎么读取application.yml文件