私はSpring MVCをjavaの設定で使用します。Spring MVC:WEB-INFから@PropertySourceをロードするには
私は2つのコンテキスト構成クラス、RootContext
とServletContext
を持っています。
RootContextクラスは、web.xmlのここ
に<context-param>
を経由してロードされているが、RootContextのコードです:私は、アプリケーションを実行する場合
@Configuration
@EnableTransactionManagement
@Import(DaoConfig.class)
@PropertySource("/WEB-INF/config/application.properties")
public class RootContext {
@Autowired
private Environment env;
@Bean(destroyMethod = "close")
public DataSource dataSource() {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(env.getProperty("jdbc.driverClassName"));
dataSource.setUrl(env.getProperty("jdbc.url"));
dataSource.setUsername(env.getProperty("jdbc.username"));
dataSource.setPassword(env.getProperty("jdbc.password"));
return dataSource;
}
@Bean
public PlatformTransactionManager transactionManager() {
return new DataSourceTransactionManager(dataSource());
}
}
、私はこのエラーを得た:
java.io.FileNotFoundException: class path resource [WEB-INF/config/application.properties] cannot be opened because it does not exist
application.properties
ファイルをクラスパスに移動するとすべて正常に動作します。しかし、私はそれが/ WEB-INF/configディレクトリにあることを望みます。
このエラーを解決する方法を教えてください。
@PropertySource("/WEB-INF/config/application.properties")
行をRootContextの代わりにServletContextに入れる必要がありますか?
ありがとうございます。
catalina.homeの使用はTomcat固有のものになります:-( –
'@ PropertySource'の中で' $ {catalina.home} 'を直接使用できますか? –