Я использую Spring MVC с конфигурацией java.Spring MVC: Как загрузить @PropertySource из WEB-INF
И у меня есть два класса конфигурации контекста: RootContext
и ServletContext
.
класс RootContext загружается через <context-param>
в web.xml
Вот код 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")
в ServletContext вместо RootContext ??
спасибо.
Использование catalina.home будет специфичным для Tomcat :-( –
Можно ли использовать '$ {catalina.home}' inside '@ PropertySource' напрямую? –