java - 在spring中获取工厂类的servletcontext

标签 java spring servlets

我想创建工厂类。例如是 FooFactory。在 Foo 实例化之前,必须将 FooFacoty 注入(inject) ServletContext 到构造函数中。我有如下片段:

public class FooFactory() {
    public static Foo getFoo() {
        ctx = //getservlet context
        Foo foo = new Foo(ctx);

            return foo;
    }
}

最佳答案

编辑:您可以使用 ServletContextFactoryBean .然后,您可以将对此的引用传递给您的工厂(例如,作为方法参数)。像这样

   <bean id="servletContext" class="org.springframework.web.context.support.ServletContextFactoryBean"/>

   <bean id="foo" class="FooFactory" factory-method="getFoo">
      <constructor-arg index="0" ref="servletContext"/>
   </bean>

然后你改变FooFactory.getFoo

   public static Foo getFoo(ServletContext ctx) {
        Foo foo = new Foo(ctx);
        return foo;
   }

据我所知,没有直接的方法,但您可以通过实现 ServletContextAware 或 ApplicationContextAware 间接实现。

<罢工> This article描述了细节。

关于java - 在spring中获取工厂类的servletcontext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3114703/

相关文章:

java - 无法播放 YouTube 视频

java字符串定界符,在 token 中保留定界符

spring - 带有 Spring Cloud Gateway 的 Keycloak

java - request.getParameter - 无法读取 &

java - Tomcat Servlet 文件上传和 UTF-8

spring - 如何在 Vaadin 应用程序中处理发布请求?

java - 将 JButton 放在右下角

java - 我应该使用 Spring 任务计划程序通过 @Async 注解在指定时间执行任务吗?

java - 在 Spring 中使用属性文件

java - JPopupMenu 中带有图标的 JLabel 不遵循其他 JMenuItem 对齐方式