方法一:在初始化时保存ApplicationContext对象
代码:
ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");
ac.getBean("beanId");
说明:这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的情况。
方法二:通过Spring提供的工具类获取ApplicationContext对象
代码:
import org.springframework.web.context.support.WebApplicationContextUtils;
ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc);
ApplicationContext ac2 = WebApplicationContextUtils.getWebApplicationContext(ServletContext sc);
ac1.getBean("beanId");
ac2.getBean("beanId");
说明:
这种方式适合于采用Spring框架的B/S系统,通过ServletContext对象获取ApplicationContext对象,然后在通过它获取需要的类实例。
上面两个工具方式的区别是,前者在获取失败时抛出异常,后者返回null。
其中 servletContext sc 可以具体 换成 servlet.getServletContext()或者 this.getServletContext() 或者 request.getSession().getServletContext(); 另外,由于spring是注入的对象放在ServletContext中的,所以可以直接在ServletContext取出 WebApplicationContext 对象: WebApplicationContext webApplicationContext = (WebApplicationContext) servletContext.getAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE);
方法三:继承自抽象类ApplicationObjectSupport
说明:抽象类ApplicationObjectSupport提供getApplicationContext()方法,可以方便的获取到ApplicationContext。
Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContext context)方法将ApplicationContext 对象注入。
方法四:继承自抽象类WebApplicationObjectSupport
说明:类似上面方法,调用getWebApplicationContext()获取WebApplicationContext
方法五:实现接口ApplicationContextAware
说明:实现该接口的setApplicationContext(ApplicationContext context)方法,并保存ApplicationContext 对象。
Spring初始化时,会通过该方法将ApplicationContext对象注入。
分享到:
相关推荐
Spring 获取 WebApplicationContext、ApplicationContext 几种方法详解 在 Spring 框架中,获取 WebApplicationContext 和 ApplicationContext 对象是非常重要的,因为它们提供了访问 Spring 容器中的 Bean 对象的...
根据提供的文件信息,我们可以总结出以下关于Spring框架中获取Bean的几种方法的相关知识点: ### Spring框架简介 Spring框架是一款开源的轻量级Java EE应用程序开发框架,它通过提供一系列强大的功能来简化Java...
本文将深入探讨几种常见的获取Spring容器的方法,包括使用`ApplicationContext`、通过`ServletContext`、利用`ApplicationObjectSupport`、`WebApplicationObjectSupport`以及实现`ApplicationContextAware`接口等。...
为了实现这一目标,Spring提供了一种方法来让我们在非Action类中获取到ApplicationContext上下文对象,进而通过这个上下文对象获取到所需的Bean实例,例如DAO层的对象。本文将详细介绍如何在Action以外的地方获取DAO...
与方法三类似,我们可以继承自抽象类`WebApplicationObjectSupport`,然后使用其提供的`getWebApplicationContext()`方法获取WebApplicationContext对象。例如: ``` public class MyBean extends ...
本文将总结几种在代码中获取Spring Bean的方法,以供学习和工作中参考。 **1. 通过`ContextLoader.getCurrentWebApplicationContext()`获取** 这种方式适用于Web应用程序,不依赖于Servlet。在服务器启动后,...
有以下几种方法: 1. **直接加载beans.xml文件** 这种方法是直接使用`ClassPathXmlApplicationContext`来加载配置文件,然后从上下文(ApplicationContext)中获取bean。例如: ```java ApplicationContext ...
Spring IOC 中依赖注入有几种方式? - **知识点**: Spring 支持多种依赖注入的方式,主要包括:属性注入、构造器注入和工厂方法注入。 - **解释**: - **属性注入**:通过 setter 方法进行依赖注入,这种方式比较...
**Spring读取配置文件的几种方式:** 1. **使用ApplicationContext**:Spring提供了`ClassPathXmlApplicationContext`和`FileSystemXmlApplicationContext`来读取配置文件。前者从类路径(CLASSPATH)加载,后者从...
1. **使用Spring的ActionSupport**:Action类直接继承自Spring的ActionSupport,通过`super.getWebApplicationContext()`获取Spring上下文,然后通过`ApplicationContext.getBean()`获取bean。这种方式简单,但...
它不仅包括了ApplicationContext的功能,还提供了获取ServletContext的功能,以及与Servlet容器的集成。 51、什么是spring? 这里可能是一个错误,应该是“什么是Spring?”,Spring是一个用于开发Java应用的开源框架...
Spring MVC 提供了几种方式来处理静态资源(如CSS、JavaScript、图片等): - 使用默认配置,Spring MVC 会自动寻找位于`/WEB-INF/resources/`下的静态资源。 - 可以通过`<mvc:resources>`标签指定静态资源的位置。...
`refresh()`方法是启动Spring IoC容器的关键,下面是对该方法中几个关键步骤的详细解释: 1. **`loadBeanDefinitions`**:读取并加载配置文件中的Bean定义信息。 2. **`prepareRefresh`**:做一些基本的初始化准备...
主要通过以下几种方式: - **非线程安全的成员变量**:确保控制器中不包含任何实例级别的成员变量。如果必须使用成员变量,则应该标记为`final`或使用线程安全的数据结构。 - **依赖注入**:利用Spring的依赖注入...
此外lazy="true"说明地返回整个Tfile对象时,并不返回fileContent这个字段的数据,只有在显式调用tfile.getFileContent()方法时才真正从数据库中获取fileContent的数据。这是Hibernate3引入的新特性,对于包含重量...
此外,也可以使用 `ApplicationContext` 对象手动获取 Bean。 #### 十八、Spring MVC 多视图控制器 多视图控制器允许一个控制器处理多个视图请求。这可以通过在控制器类中定义多个方法,并分别使用 `@...