package net.gbicc.x27.util.web; import net.gbicc.BpmConfig; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class NeqBeanFactory { private static final BpmConfig config = BpmConfig.getInstance(); private static final String clientSite = config.getClientSite(); private ApplicationContext context = null; private static NeqBeanFactory inst = new NeqBeanFactory(); private NeqBeanFactory() { }; public static NeqBeanFactory getInstance() { return inst; } public synchronized void setContext(ApplicationContext context) { this.context = context; } public synchronized ApplicationContext getContext() { if (context == null) { bulidContext(); } return context; } /** * 根据beanId 获取Bean * * @param beanId * @return */ public synchronized Object getBean(String beanId) { if (context == null) { bulidContext(); System.out.println("NeqBeanFactory===bulidContext===beanId="+beanId); } System.out.println("NeqBeanFactory====NOT_bulidContext===beanId="+beanId); return context.getBean(beanId); } public synchronized void bulidContext() { String[] contextRef = new String[1]; if ("internal".equals(clientSite)){ contextRef = new String[] { "classpath:spring-context-internal.xml" }; } else { contextRef = new String[] { "classpath:spring-context-external.xml" }; } if (context == null){ context = new ClassPathXmlApplicationContext(contextRef); } } }
package net.gbicc.x27.util.web; import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import org.springframework.context.ApplicationContext; import org.springframework.web.context.ContextLoaderListener; import org.springframework.web.context.support.WebApplicationContextUtils; /** * 扩展ContextLoaderListener类 * 在WEB 系统启动时将ApplicationContext单例压人BeanFactory中 * @author BPM05 * */ public class NeqContextLoaderListener extends ContextLoaderListener { public void contextInitialized(ServletContextEvent event){ try { super.contextInitialized(event); } catch (Exception e) { e.printStackTrace(); } System.out.println("=========================NeqContextLoaderListener"); ServletContext context = event.getServletContext(); ApplicationContext ctx=WebApplicationContextUtils.getRequiredWebApplicationContext(context); NeqBeanFactory.getInstance().setContext(ctx); } }
相关推荐
ContextLoaderListener 是 Spring 框架中的一种监听器,它的主要作用是启动 Web 容器时,自动装配 ApplicationContext 的配置信息。它实现了 ServletContextListener 接口,在 web.xml 文件中配置这个监听器,启动...
在Spring框架中,Web应用的启动流程涉及到多个关键组件和步骤。本文将深入探讨Spring在Tomcat环境下如何初始化并创建ApplicationContext,以及Spring MVC与Spring协同工作时的应用上下文创建过程。 首先,我们关注...
- **ContextLoaderListener**:这是一个Servlet监听器,它会在Web应用启动时自动加载`/WEB-INF/applicationContext.xml`(默认配置)。 - **ContextLoaderServlet**:这是一个Servlet,同样用于初始化`...
ContextLoaderListener 是Spring框架中一个重要的组件,它作为Servlet容器的监听器(ServletContextListener),在Web应用程序启动时自动加载ApplicationContext的配置信息。当web.xml中配置了`<listener-class>org...
在`web.xml`配置文件中,设置`<context-param>`和`<listener>`元素,指定配置文件的位置,这样当Web服务器启动时,`ContextLoaderListener`会自动创建ApplicationContext。 ApplicationContext的实例化完成后,我们...
在Web应用中,ApplicationContext的初始化常通过`ContextLoaderListener`在web.xml中配置完成,这样可以确保在Web服务器启动时加载Spring容器。配置如下: ```xml <param-name>contextConfigLocation ...
配置文件通常放在项目的\WEB-INF目录下,可以通过Web应用程序的监听器(ContextLoaderListener)或自启动Servlet(ContextLoaderServlet)来加载。 在Web应用程序中,Spring的WebApplicationContext是专门为Web环境...
在`web.xml`中添加`ContextLoaderListener`,用于在服务器启动时初始化Spring的ApplicationContext,并将BeanFactory放入ServletContext中。 Spring的`ContextLoaderListener`初始化代码示例: ```java public ...
而ContextLoaderListener则是一个监听器,可以在Web应用启动时加载配置文件,创建ApplicationContext,并将上下文信息存储在ServletContext中,方便全局访问。 在Web应用的部署描述符web.xml中,我们可以通过`...
在Web应用中,ApplicationContext通常由`ContextLoaderListener`在web.xml中配置,这样可以在应用启动时自动加载Spring配置。 【获取Spring容器中的Bean】 创建ApplicationContext后,有两种方式获取Bean: 1. `...
可以通过使用Spring代码声明式的指定在web应用程序启动时载入应用程序上下文(WebApplicationContext),Spring的ContextLoader是提供这样性能的类,我们可以使用 ContextLoaderServlet或者ContextLoaderListener的...
1. **初始化**: 应用程序启动时,`ContextLoader`会根据`web.xml`中的`ContextLoaderListener`配置寻找XML配置文件。 2. **创建ApplicationContext**: `ContextLoader`读取这些XML配置文件,然后创建一个`...
- **上下文加载**:ApplicationContext 通常在应用启动时被加载,提供了一个完整的配置上下文。 - **单元测试与上下文**:在编写单元测试时,可以通过 ApplicationContext 来获取特定的 Bean,从而测试其功能。 #...
- **知识点**: 在 JavaWeb 应用中,可以通过 `web.xml` 文件配置 `ContextLoaderListener` 来启动 Spring 容器。 - **解释**: ```xml <param-name>contextConfigLocation <param-value>/WEB-INF/...
当Web应用启动时,它会创建Spring的根ApplicationContext,使得应用的bean可以在请求到达之前被实例化和配置。 6. **OurFactoryInterceptor.java**:这个名字暗示了一个自定义的拦截器,可能用于AOP(面向切面编程...
1. **配置Spring容器**:在Web应用启动时加载Spring容器,并指定Spring配置文件的位置。 2. **定义SpringFactory**:自定义一个SpringFactory类,用于创建和管理Spring容器中的Bean实例。 3. **配置FlexServices**:...