方法一:在初始化时保存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。
方法三:继承自抽象类ApplicationObjectSupport
说明:
抽象类ApplicationObjectSupport提供getApplicationContext()方法,可以方便的获取到ApplicationCont
ext。Spring初始化时,会通过该抽象类的setApplicationContext(ApplicationContext
context)方法将ApplicationContext 对象注入。
方法四:继承自抽象类WebApplicationObjectSupport
说明:
类似上面方法,调用getWebApplicationContext()获取WebApplicationContext
方法五:实现接口ApplicationContextAware
说明:
实现该接口的setApplicationContext(ApplicationContext context)方法,并保存ApplicationContext 对
象。Spring初始化时,会通过该方法将ApplicationContext 对象注入。
以上方法适合不同的情况,请根据具体情况选用相应的方法。
这里值得提一点的是,系统中用到上述方法的类实际上就于Spring框架紧密耦合在一起了,因为这些类是知道它们是运行在Spring框架上的,因此,系统中,应该尽量的减少这类应用,使系统尽可能的独立于当前运行环境,尽量通过DI的方式获取需要的服务提供者。
分享到:
相关推荐
- **通过代码注解**:Spring也支持通过注解来获取Bean,如`@Autowired`和`@Resource`,它们能够自动将依赖注入到目标字段或方法中,无需手动从ApplicationContext获取。 3. **静态Singleton Bean Manager** 通常...
spring 获取bean spring 获取bean spring 获取bean spring 获取bean spring 获取bean spring 获取bean spring 获取bean spring 获取bean
java *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取beanjava *spring工具类 方便在非spring管理环境中获取...
根据提供的文件信息,我们可以总结出以下关于Spring框架中获取Bean的几种方法的相关知识点: ### Spring框架简介 Spring框架是一款开源的轻量级Java EE应用程序开发框架,它通过提供一系列强大的功能来简化Java...
在提交任务时,可以将bean作为参数传递,或者在任务内部使用`ApplicationContextAware`接口获取应用上下文,从而获取bean。 4. **ApplicationContextAware**:让线程处理类实现`ApplicationContextAware`接口,...
本篇文章将深入探讨如何在Spring应用中获取Bean,以及相关的源码分析和实用工具。 首先,Spring容器(ApplicationContext)是管理Bean的中心,它负责Bean的生命周期和依赖注入。获取Bean主要有以下几种方式: 1. *...
5. **获取Bean实例**: 在预实例化过程中,`getBean(beanName)`被调用,这是`AbstractBeanFactory`类中的一个方法,用于从Bean工厂中获取指定名称的Bean实例。 6. **实际获取Bean**: 进入`doGetBean()`方法,这...
获取springbean对象
在本篇中,我们将深入探讨"Spring中的Bean"这一主题,包括Bean的定义、配置以及如何在实际应用中使用。 首先,我们需要理解什么是Spring中的Bean。在Spring中,Bean通常代表应用程序中的一个对象,这些对象由Spring...
Spring获取Bean类
在Spring框架中,有时我们需要在非Spring管理的类或者不适用自动装配的场景下获取到Service、DAO等Bean对象。...但在某些特殊情况下,如需在非Spring管理的类中获取Bean,上述其他方法则会派上用场。
3. **加载配置并获取Bean**: 在Java代码中,使用`ClassPathXmlApplicationContext`加载XML配置文件,并通过Bean的ID获取并使用Bean实例。 ```java ApplicationContext context = new ...
获得 Spring 里注册 Bean 的四种方法 在 Spring 框架中,获取已注册的 Bean 对象是非常重要的一步。下面将介绍四种获取 Spring 里注册 Bean 的方法。 方法一:继承 BaseDispatchAction 这种方法常用于 Struts ...
然后,通过调用`getBeanFactory()`方法,我们可以得到`DefaultListableBeanFactory`类型的`BeanFactory`实例,这个实例是Spring容器内部管理Bean的真正场所。 ```java ConfigurableApplicationContext ...
java spring工具类 方便在非spring管理环境中获取beanjava spring工具类 方便在非spring管理环境中获取beanjava spring工具类 方便在非spring管理环境中获取beanjava spring工具类 方便在非spring管理环境中获取bean...
- 使用静态工厂方法实例化:这种方式通过调用一个静态方法来获取Bean实例,适用于简单工厂模式。 - 使用实例工厂方法实例化:类似于静态工厂方法,但工厂方法是非静态的,需要先创建工厂类的实例后再调用。 - ...
Spring 中获取 Bean 的多种方式 在 Spring 框架中,获取 Bean 是一个非常重要的步骤,因为它是使用 Spring 框架的基础。Spring 提供了多种方式来获取 Bean,这些方式可以根据不同的应用场景选择使用。 通过 XML ...
在 Java 应用中,我们可以创建一个主类来启动应用程序,并从 Spring 容器中获取 Bean 实例。例如: ```java public class MainApp { public static void main(String[] args) { ApplicationContext context = new...
- 博文链接:https://1151461406.iteye.com/blog/2389888,这个链接可能包含有关Spring4入门和获取Bean的具体教程。 - 在线课程:如Coursera、Udemy等平台上的Spring课程。 - 开源项目:参与开源项目,了解Spring在...
- **id属性**:是Bean在BeanFactory中的唯一标识符,用于通过BeanFactory获取Bean实例。例如,`<bean id="myBean" class="com.example.MyClass">`。 - **name属性**:类似于`id`属性,但可以定义多个别名。例如,`...