本文主要是介绍手动依赖注入;AutowireCapableBeanFactory简述,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
概述
spring boot
虽然帮我们把bean
的依赖注入基本都默认配置好了;但有些时候,业务场景中一些对象实例不在spring
生命周期中,但是对象中的属性又需要被spring
依赖注入(属性在spring
容器管理中);
比如一些servle
的filter
类,其中的一些属性又需要依赖一些spring
的bean
我遇到的情况是这样的,实现FactoryBean
接口获取到的自定义bean
因为没有参与spring
中bean
的初始化,所以FactoryBean.getBean
获取到的bean
是没有经过spring
的依赖注入的,也就是bean
里需要注入的属性都是空的
这个时候可以使用AutowireCapableBeanFactory
对刚刚制造出来的对象手动让它经过spring
的依赖注入
常用方法简述
org.springframework.beans.factory.config.AutowireCapableBeanFactory
autowireBean(Object existingBean)
功能:自动装配给定的现有
Bean
。此方法会尝试根据现有的依赖关系自动装配Bean
的属性。
参数:existingBean
- 需要自动装配的现有Bean
对象。 返回值:无。autowireBeanProperties(Object existingBean, int autowireMode, boolean dependent)
功能:自动装配给定的现有Bean
的属性,使用指定的自动装配模式和依赖标志。
参数:existingBean
- 需要自动装配的现有Bean
对象。autowireMode
- 自动装配模式,如
AUTOWIRE_BY_NAME 或 AUTOWIRE_BY_TYPE
。dependent
- 是否将现有Bean
标记为依赖于自动装配过程中创建的任何其他Bean
。
返回值:无。initializeBean(Object existingBean, String beanName)
功能:初始化给定的现有
Bean
。这通常包括调用Aware
接口的方法(如果实现了的话),以及调用任何@PostConstruct
注解的方法。
参数:existingBean
- 需要初始化的现有Bean
对象。beanName - Bean
的名称。
返回值:初始化后的Bean
。applyBeanPostProcessorsAfterInitialization(Object existingBean, String beanName)
功能:在Bean
初始化之后,应用所有已注册的BeanPostProcessor
实例的
postProcessAfterInitialization
方法。
参数:existingBean
- 需要处理的现有Bean
对象。beanName - Bean
的名称。
返回值:处理后的Bean
。applyBeanPostProcessorsBeforeInitialization(Object existingBean, String beanName)
功能:在Bean
初始化之前,应用所有已注册的BeanPostProcessor
实例的
postProcessBeforeInitialization
方法。
参数:existingBean
- 需要处理的现有Bean
对象。beanName - Bean
的名称。
返回值:处理后的Bean
。createBean(String beanName, Class<?> beanClass, Object... args)
功能:创建一个新的Bean
实例,并使用给定的构造函数参数进行初始化。
参数:beanName
- 新Bean
的名称。
beanClass - Bean
的类。
args
- 构造函数参数。
返回值:创建的新Bean
实例。invokeInitMethods(String beanName, Object bean, Object[] specificArguments)
功能:调用Bean
的初始化方法,这通常是@PostConstruct
注解的方法或
<bean init-method="...">
配置中指定的方法。
参数:beanName - Bean
的名称。bean - Bean
的实例。specificArguments
- 初始化方法的特定参数。
返回值:无。destroyBean(String beanName, Object bean)
功能:销毁给定的Bean
。这通常包括调用
@PreDestroy
注解的方法或<bean destroy-method="...">
配置中指定的方法。
参数:
beanName - Bean
的名称。bean - Bean
的实例。
返回值:无。
这篇关于手动依赖注入;AutowireCapableBeanFactory简述的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!