通过xml配置文件
bean配置在xml里面,spring提供多种方式读取配置文件得到ApplicationContext.
第一种方式:FileSystemXmlApplicationContext
通过程序在初始化的时候,导入Bean配置文件,然后得到Bean实例:
ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml")
ac.getBean("beanName");
<!--more-->
第二种方式:WebApplicationContextUtil
在B/S系统中,通常在web.xml初始化bean的配置文件,然后由WebAppliCationContextUtil得到ApplicationContext.例如:
ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc);
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);
其中 servletContext sc 可以具体 换成 servlet.getServletContext()或者 this.getServletContext() 或者 request.getSession().getServletContext();
另外,由于spring是注入的对象放在ServletContext中的,所以可以直接在ServletContext取出WebApplicationContext 对象:
WebApplicationContext webApplicationContext = (WebApplicationContext) servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);

下面几种方式没有用过,
getRequiredWebApplicationContext和 getWebApplicationContext的区别是,获取失败时候,getRequiredWebApplicationContext抛出异常,getWebApplicationContext抛出null
方法三:继承自抽象类ApplicationObjectSupport
说明:可以方便的获取到
ApplicationContext。Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContext context)方法将ApplicationContext 对象注入。
方法四:继承自抽象类WebApplicationObjectSupport
说明:类似上面方法,调用getWebApplicationContext()获取WebApplicationContext
方法五:实现接口ApplicationContextAware 说明: 实现该接口的setApplicationContext(ApplicationContext context)方法,并保存ApplicationContext 对象。Spring初始化时,会通过该方法将ApplicationContext 对象注入。
抽象类ApplicationObjectSupport提供getApplicationContext()方法
分享到:
相关推荐
综上所述,`Spring 获得applicationcontext公用方法`涉及了Spring框架中的核心概念,包括`ApplicationContext`的创建、获取以及在实际项目中的使用方式。通过`MyApplicationContextUtil`这样的静态工具类,我们可以...
// 获得返回的容器对象 return ac; } } ``` 在这个例子中,我们定义了一个名为ApplicationContextUtil的工具类,它持有一个静态的ApplicationContext实例。通过静态初始化块,我们创建了...
在Spring框架中,`ApplicationContext` 是一个非常重要的接口,它提供了对整个应用上下文的访问,包括所有已初始化的Bean以及它们之间的依赖关系。通过`ApplicationContext`,我们可以获取到Spring容器管理的所有...
- **了解自身**:通过ApplicationContextAware接口,Bean可以获得对ApplicationContext的引用,从而获取其他Bean的信息。 - **FactoryBean**:这是一种特殊的Bean,它负责创建其他Bean。 #### 3.5 抽象和子Bean定义...
首先,ApplicationContext接口继承了MessageSource接口,因此它自然地获得了国际化消息支持的功能。MessageSource接口是Spring框架中用于访问消息的策略接口,它可以被用来解析消息,并支持国际化。 在...
这需要在处理类中通过`TagSupport`的`pageContext`获取`HttpServletRequest`,进一步获取`WebApplicationContextUtils`来得到ApplicationContext。 5. **标签执行流程**: - JSP解析器遇到自定义标签时,查找对应...
Spring ApplicationContext.xml配置是 Spring 框架中非常重要的一部分,它提供了企业级服务,并且可以通过依赖注入来获得简单而有效的测试能力。然而,在大项目中,XML 配置文件可能会变得冗长而不易使用。因此,...
因此,我们只需要在web.xml中配置ContextLoaderListener监听器,并使用WebApplicationContextUtils获得应用上下文对象ApplicationContext。 3. 导入Spring集成web的坐标 为了使用Spring框架在Web应用程序中,我们...
一、简单的用ApplicationContext做测试的话,获得Spring中定义的Bean实例(对象).可以用: ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); RegisterDAO registerDAO = ...
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.context = applicationContext; MyBean myBean = context.getBean(MyBean.class); } } ``` 7. **...
在测试类MyTest中,我们使用了AnnotationConfigApplicationContext类,用于加载配置类并获得ApplicationContext对象。然后,我们使用了getBean方法,根据Bean的名称获取了对应的Bean对象。 三、自动装配的原理 ...
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); IWorkFlowService service = (IWorkFlowService) context.getBean("serviceBeanId"); // 进行业务操作 } } ``` ...
Spring的核心在于其BeanFactory和ApplicationContext,它们使得对象的管理和装配变得简单。这里我们将详细探讨如何在Java中通过Spring获取配置的bean。 1. **BeanFactory与ApplicationContext** - **BeanFactory*...
获得 Spring 里注册 Bean 的四种方法 在 Spring 框架中,获取已注册的 Bean 对象是非常重要的一步。下面将介绍四种获取 Spring 里注册 Bean 的方法。 方法一:继承 BaseDispatchAction 这种方法常用于 Struts ...
5. **通过工具获得应用上下文对象**: 在Web应用的任何Servlet或Filter中,我们可以通过`WebApplicationContextUtils`工具类获取ApplicationContext: ```java ServletContext servletContext = ...; // 获取...
- ApplicationContext提供了更多的定制化行为,如实现ApplicationContextAware接口以获得上下文信息等。 通过上述知识点的学习,我们可以更深入地理解Spring框架的工作原理,从而更好地利用Spring框架构建高效、可...
本文将深入探讨如何自定义Spring实现读取`applicationContext.xml`配置文件,并进行依赖注入。 **一、控制反转(IoC)** 控制反转是指应用程序的控制权由传统的对象创建和调用转移到框架手中。在没有IoC的情况下,...
通常,`ContextLoaderListener`被认为更优,因为它在Web应用启动时立即初始化ApplicationContext,确保所有依赖于Spring的组件都能及时获得所需的Bean。而`ContextLoaderServlet`可能会因为启动延迟导致依赖关系的...