我正在尝试将一个Spring管理的bean和一个字符串值注入到servlet中。 servlet在context.xml
中定义如下:
<bean name="gwtlogging" class="com.somepackage.MyRemoteLogger">
<property name="symbolMapsDirectory" value="/WEB-INF/deploy/gwt/symbolMaps/"/>
<property name="serializationPolicyResolver" ref="serializationPolicyResolver"/>
</bean>
我遇到过这种方法:
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this,
config.getServletContext());
}
这有效,但有一些缺点:
context.xml
中的定义注入bean,而不是按照自动装配理想情况下,我希望xml中定义的所有值都以某种方式注入到servlet实例中。
答案 0 :(得分:0)
如果您可以使用,则可以在XML配置文件中声明Servlet
bean,使用Spring的WebApplicationInitializer
(或编写您自己的ServletContainerInitializer
)来加载XML文件。 WebApplicationContext
,检索Servlet
bean,并使用add(String, Servlet)
将其添加到ServletContext
。
Servlet
实例将通过Spring完全准备好,并将由您的Servlet容器使用。