2
Spring版本4.2.2
:什麼是在Java配置更換爲以下幾點:春@PropertySource,如何讀取一個文件不是在classpath中,不過在WEB-INF
<bean id="placeholderConfig"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="/WEB-INF/conf/mars.properties" />
</bean>
在一個我有以下的配置。文件:
@Configuration
@EnableTransactionManagement
@ComponentScan
@PropertySource("file:WEB-INF/conf/mars.properties")
public class JpaConfig {
private static final String DB_DRIVER = "a";
private static final String DB_URL = "b";
private static final String DB_USERNAME = "c";
private static final String DB_PASSWORD = "d";
private static final String DB_PLATFORM = "e";
@Resource
private Environment env;
@Bean(destroyMethod="close")
public DataSource dataSource() {
org.apache.tomcat.jdbc.pool.DataSource ds = new org.apache.tomcat.jdbc.pool.DataSource();
PoolProperties p = new PoolProperties();
p.setUrl(env.getProperty(DB_URL));
p.setDriverClassName(env.getProperty(DB_DRIVER));
p.setUsername(env.getProperty(DB_USERNAME));
p.setPassword(env.getProperty(DB_PASSWORD));
....
}
這將導致以下運行時錯誤:
Caused by: java.io.FileNotFoundException: \WEB-INF\conf\mars.properties (The system cannot find the path specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
我嘗試了以下的變化,但無濟於事:
@PropertySource("file://WEB-INF/conf/mars.properties")
這是一個XML配置基於應用我」 m轉換爲Java Config。
它應該與春季3.2一起工作嗎? 對我來說,它始終告訴「在啓動時無法打開類路徑資源[WEB-INF/properties/config.properties],因爲它不存在」。 (注意:在錯誤消息中刪除了前導斜槓) – baraber
@baraber通常,WEB-INF不會添加到類路徑中。將您的屬性文件移動到類路徑上的某些內容或將WEB-INF添加到類路徑中。 –