java PropertySource在DispatcherServletInitializer中不工作
我有一个servlet扩展AbstractAnnotationConfigDispatcherServletInitializer
,其中我需要使用@PropertySource
读取外部属性文件,如下所示。但是,它返回NullPointerException
。
如果我在其他bean类上这样做,那么它工作正常,可以成功地读取外部属性文件
我只想在启动servlet时从外部文件中获取一个键值对。我也试过ResourceLoader
,但不知何故还是不起作用
我花了一整天的时间在谷歌上搜索了很多博客,但仍然没有找到解决方法。 谁能给我一些线索吗
非常感谢
myenv。属性
system.env=DEV
WebAppInitializer。java
@Configuration
@PropertySource(value = "file:C:\\myenv.properties")
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
private static final Logger LOGGER = LoggerFactory.getLogger(WebAppInitializer.class);
@Autowired
Environment env;
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
super.onStartup(servletContext);
String systemEnv = env.getProperty("system.env");
LOGGER.info("systemEnv: {}", systemEnv);
servletContext.setInitParameter("spring.profiles.active", systemEnv );
}
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[] { ...... };
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] { ...... };
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
共 (0) 个答案