将bean和值(在context.xml中定义)注入servlet

时间:2014-12-19 15:52:27

标签: java spring servlets

我正在尝试将一个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,而不是按照自动装配
  • 我需要注入一个字符串值(不是bean),这似乎不可能这样

理想情况下,我希望xml中定义的所有值都以某种方式注入到servlet实例中。

1 个答案:

答案 0 :(得分:0)

如果您可以使用,则可以在XML配置文件中声明Servlet bean,使用Spring的WebApplicationInitializer(或编写您自己的ServletContainerInitializer)来加载XML文件。 WebApplicationContext,检索Servlet bean,并使用add(String, Servlet)将其添加到ServletContext

Servlet实例将通过Spring完全准备好,并将由您的Servlet容器使用。