如何从当前spring容器中获得bean

如题所述

写一个类,实现BeanFactoryAware接口,把该接口配置到spring中,然后把getbean方法写成静态的,就可以动态获取了。下面是示例:

Java代码
public class Springfactory implements BeanFactoryAware {

private static BeanFactory beanFactory;

// private static ApplicationContext context;

public void setBeanFactory(BeanFactory factory) throws BeansException {
this.beanFactory = factory;
}

/**
* 根据beanName名字取得bean
*
* @param beanName
* @return
*/
public static <T> T getBean(String beanName) {
if (null != beanFactory) {
return (T) beanFactory.getBean(beanName);
}
return null;
}

}

使用的时候,通过Springfactory.getBean("beanName"),就可以获取到bean了。注意:这个是静态方法,直接通过类名去调用。
温馨提示:内容为网友见解,仅供参考
无其他回答

普通Java类获取spring 容器的bean的5种方法
获取Spring容器中bean的五种方法如下: 在初始化时保存ApplicationContext对象。 通过Spring提供的工具类获取ApplicationContext对象。 继承自抽象类ApplicationObjectSupport。 继承自抽象类WebApplicationObjectSupport。 实现接口ApplicationContextAware。在普通Java类中实现这五种方法获取Spring容器的be...

快速了解获取Spring Bean的8种方式
1. ClassPathXmlApplicationContext: 通过从src\/main\/resources路径加载XML配置文件,创建ApplicationContext实例来获取bean。例如,先定义xml配置,然后在Java类中通过指定配置文件路径获取bean。2. ApplicationContext接口: 在Spring Boot项目中,通过启动后自动获取容器中的bean,需要bean有注解以便注入。3. Appl...

Spring 容器获取 Bean 的 9 种方式 | 京东云技术团队
获取Bean的方式多种多样,包括直接通过BeanFactory(已过时)、实现BeanFactoryAware接口、在项目启动时存储ApplicationContext、通过继承ApplicationObjectSupport或WebApplicationObjectSupport等。Spring还提供了如WebApplicationContextUtils和ContextLoader等工具类,以及BeanFactoryPostProcessor以适应不同场景。总结来说,...

Spring获取Bean的9种方式
获取Bean的方式包括:通过BeanFactory(过时): 早期基于XML配置,不推荐,因为它已被注解和ApplicationContext替代。BeanFactoryAware接口: 通过实现接口获取BeanFactory,但带有BeanFactory的缺点。启动时获取ApplicationContext: 在项目启动时存储ApplicationContext,有基于XML和Spring Boot两种方式。ApplicationObjectSupp...

spring如何获取bean的6种方法,你知道几个?
方法一:在初始化时保存ApplicationContext对象。适用于采用Spring框架的独立应用程序,需通过配置文件手工初始化Spring。方法二:利用Spring提供的工具类获取ApplicationContext对象。适合于采用Spring框架的B\/S系统,通过ServletContext对象获取ApplicationContext,再通过它获取所需类实例。与方法一的区别在于,前者在...

spring如何获取bean的6种方法,你知道几个?
Spring框架中的Bean获取有六种主要方式,这些方法分别适用于不同的应用场景。首先,BeanFactory和ApplicationContext是Spring的核心组件,前者是底层基础,后者则是面向开发者的应用上下文,更易于构建实际应用。获取Bean的方式多样,其中,最常见的是通过初始化时保存ApplicationContext对象,适用于手动配置Spring的...

Spring从容器中获取bean对象可以分别通过什么接口?
方法一:在初始化时保存ApplicationContext对象new ClassPathXmlApplicationContext("applicationContext.xml").getBean("beanId");这种方式适用于采用Spring框架的独立应用程序,需要程序通过配置文件手工初始化Spring的配置信息。方法二:通过Spring提供的工具类获取ApplicationContext对象import org.springframework....

spring获取bean的几种方式
第一种:使用构造器实例化Bean,这是最简单的方式采用Spring IoC容器 第二种:使用静态工厂方式实例化Bean,这种需要必须的class属性外,还需要factory-method属性 第三种:使用实例工厂方法实例化Bean,工厂模式应该都知道,比较常用的一种模式 第四种:用 setter 方式,需要写上set、get方法,然后再xml...

Spring源码-09-Bean工厂之getBean方法
一、getBean方法 getBean方法是Spring容器对外提供的一种接口,用于根据指定的Bean名称获取对应Bean实例。该方法会根据配置信息和缓存机制,找到并返回所需的Bean。二、doGetBean方法 doGetBean方法是getBean方法的内部实现,负责处理Bean的查找、创建和返回工作。其流程分为以下几个关键步骤:1. getSingleton...

spring加载bean的过程?
5、通过实现ApplicationContextAware接口,通过Spring启动过程中回调setApplicationContext接口,获取spring的IOC容器,然后就可以注册bean到Spring容器中了。6、testspring.A@50d89cB.funb从这里看到A的name属性在bean加载完成的时候也被成功设置为B的funB方法的返回值了,要点就是用init-method来实现。spring...

相似回答