Я использую Spring MVC с конфигурацией Java.
И у меня есть два класса конфигурации контекста: 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
файл в classpath. Но я хочу, чтобы он был в каталоге / WEB-INF / config.
Есть предложения, как решить эту ошибку?
Должен ли я поставить @PropertySource("/WEB-INF/config/application.properties")
строку в ServletContext вместо RootContext ??
Спасибо.