getBeansOfType afterPropertiesSet

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HNUST_LIZEMING/article/details/88664718

知识点1:appContext.getBeansOfType()方法。

key位 bean name,value为实例
该方法返回一个map类型的实例,map中的key为bean的名字,key对应的内容未bean的实例。

该方法有两种类型的重载:
getBeansOfType(Class),获取某一类的所有的bean。

getBeansOfType(Class,boolean,boolean),后面两个布尔值,第一代表是否也包含原型(Class祖先)bean或者或者只是singletons(包含FactoryBean生成的),第二个表示是否立即实例化懒加载或者由FactoryBean生成的Bean以保证依赖关系。

在TaskServiceImpl中,我们通过这个方法取得所有继承UserTaskProcessor接口的bean,然后通过accept(code)方法判断具体调用哪个实例化的bean。

知识点2:

afterPropertiesSet()方法。

初始化bean的时候执行该方法,前提是实现InitializingBean接口。

实现类似功能的还有init-method方法,需要在需要在applicationContext.xml配置文档中bean的定义里头写明。例如:<bean id="TestBean" class="xxx.util.TestBean" init-method="init"></bean>,初始化的时候会执行TestBean的init方法。

执行顺序:先执行afterPropertiesSet()方法,然后执行init-method()方法。

不过init-method()方法需要在配置文件配置,和现在普遍使用注解不符。

还有一个@postconstruct注解也有类似功能。

相反的DisposableBean提供销毁前的调用方法。
 

猜你喜欢

转载自blog.csdn.net/HNUST_LIZEMING/article/details/88664718
今日推荐