通过BeanFactoryPostProcessor来获取bean

简介: 一、现在我们很多时候都在spring的容器中,进行bean的提取和操作,但是配置里面首先需要扫描相应的包来实现相关bean的注入  但是问题来了。如果我们在另外一个线程需要用的时候,并且没有配置扫描该类。

一、现在我们很多时候都在spring的容器中,进行bean的提取和操作,但是配置里面首先需要扫描相应的包来实现相关bean的注入

  但是问题来了。如果我们在另外一个线程需要用的时候,并且没有配置扫描该类。那么手动去获取bean就很有必要的。

二、这里是我学习到的一种bean的获取和处理方式

三、需要的包spring3.0以后

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>4.3.9.RELEASE</version>
    </dependency>

四、实现BeanFactoryPostProcessor接可以了,会重写一个方法

@Component
public class SpringUtil implements BeanFactoryPostProcessor {

    private static ConfigurableListableBeanFactory beanFactory;

    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
        this.beanFactory = beanFactory;
    }

    public static Object getBean(String name) {
        return beanFactory.getBean(name);
    }
    public static <T> T getBean(Class<T> clazz){
        return beanFactory.getBean(clazz);
    }
}

这个方式在启动以后,可以根据具体的名称来实现bean的获取和使用。

主要是方便自己管理和使用

 

相关文章
|
8月前
|
Java Spring 容器
ServiceLocatorFactoryBean获取Bean方法
在上述示例中,`MyService`是要获取的具体Bean的类型。通过配置 `ServiceLocatorFactoryBean`,定义 `ServiceLocator`接口和实现类,然后通过获取 `MyServiceLocator`实例并调用方法,可以从Spring容器中获取特定类型的Bean。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
97 0
|
Java 开发者 Spring
BeanFactory和FactoryBean
BeanFactory和FactoryBean
96 0
|
XML 设计模式 Java
什么是bean
什么是bean
478 0
|
XML Java 测试技术
Bean的自动装配
- 自动装配Spring满足bean依赖一种方式! - Spring会在上下文中自动寻找,并自动给Bean装配属性
|
XML Java 数据格式
@Bean 注解
@Bean 注解
3007 5
|
Java Spring 容器
|
XML Java 数据格式
就是要让你彻底学会 @Bean 注解(下)
就是要让你彻底学会 @Bean 注解(下)
就是要让你彻底学会 @Bean 注解(下)
通过实现ApplicationContextAware接口获取Bean
通过实现ApplicationContextAware接口获取Bean
151 0
|
Java Spring 容器
Spring源码解析 - FactoryBean&&BeanFactory(中)
Spring源码解析 - FactoryBean&&BeanFactory
176 0
Spring源码解析 - FactoryBean&&BeanFactory(中)
|
XML JSON Java
Spring源码解析 - FactoryBean&&BeanFactory(上)
Spring源码解析 - FactoryBean&&BeanFactory
132 0
Spring源码解析 - FactoryBean&&BeanFactory(上)