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

Java 将bean和值(在context.xml中定义)注入servlet,java,spring,servlets,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="serial

我试图将一个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>
这是可行的,但也有一些缺点:

  • 我想按照
    context.xml
    中的定义注入bean,而不是按照自动连线
  • 我需要注入一个字符串值(不是bean),这种方式似乎不可能

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

如果您可以使用它,您可以在xml配置文件中声明
servlet
bean,使用Spring(或编写自己的)将xml文件加载到
WebApplicationContext
,检索
servlet
bean,并使用将其添加到
ServletContext


Servlet
实例将在Spring中完全准备好,并将由Servlet容器使用

请澄清我想按照context.xml中的定义而不是按照自动连线来注入bean。自动连线是根据名称、类型等来注入实例的。我想按照xml中的说明来注入实例。MyRemoteLogger是否为
a
Servlet
?正确,很抱歉我没有提到它。主要问题是第二个,注入静态值。我可以离开autowiring,但我需要注入这个字符串。如果我的servlet中已经有可用的
ApplicationContext
,我不明白为什么要再次加载xml?我可以将servlet实例添加到spring上下文中吗?它会注入值吗?@damluar在本例中,没有第二个
ApplicationContext
。这是您唯一加载的。它是web.xml中加载的另一种方法。有关示例,请参见javadoc。
@Override
public void init(ServletConfig config) throws ServletException {
    super.init(config);

    SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this,
            config.getServletContext());
}