0
我必须将一个带有servlet的旧spring应用程序移植到spring引导应用程序中。在单独的servlet中访问弹簧环境
我为现有的servlet配置了一个java样式的配置文件,但我无法将弹簧环境传递给它们。
例如Java的配置看起来像这样(我跳过了真正的映射)
@Configuration
public class ServletConfig {
@Bean
public ServletRegistrationBean initServletRegistration() throws ServletException {
ServletRegistrationBean bean = new ServletRegistrationBean();
try {
bean.setServlet(new InitServlet());
} catch (Exception e) {
NewLog.logError(this, "InitServlet threw an exception: " + e, e);
throw new ServletException("InitServlet threw an exception: " + e);
}
bean.setUrlMappings(Arrays.asList("...."));
bean.setLoadOnStartup(1);
return bean;
}
@Bean
public ServletRegistrationBean testReceiveServiceServletRegistration() {
ServletRegistrationBean bean = new ServletRegistrationBean();
bean.setServlet(new TestReceiveServiceServlet());
bean.setUrlMappings(Arrays.asList("...."));
return bean;
}
@Bean
public ServletRegistrationBean insertIntoInputQueueServletRegistration() {
ServletRegistrationBean bean = new ServletRegistrationBean();
bean.setServlet(new InsertIntoInputQueueServlet());
bean.setUrlMappings(Arrays.asList("...."));
return bean;
}
@Bean
public ServletRegistrationBean nonCxfRedirectServletRegistration() {
ServletRegistrationBean bean = new ServletRegistrationBean();
bean.setServlet(new NonCxfRedirectServlet());
bean.setUrlMappings(Arrays.asList(".....");
return bean;
}
然后在servlet我想注入春天的环境,但我总是空的ENV vairable
public class InitServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@Autowired
Environment env;
public InitServlet() throws Exception {
}
........
}
servlet本身工作正常如果我调试他们在给定的url映射他们响应,我只想从他们访问弹簧环境从application-X.properties取决于给定的弹簧配置文件的数据。
将它们注册为“@ Bean”,并且不要在生成“ServletRegistrationBean”的方法中构造它们。 –