通过@Bean声明了 , 并且和属性分别指定到了类的方法和方法
@Bean( = “”,= “”)
() {
new ();
}
测试
class{
public static void main(String[] args) {AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext();//将 LifeCycle 注册到容器中applicationContext.register(Application.class);applicationContext.refresh();// 关闭上下文 , 触发销毁操作applicationContext.close();}@Bean(initMethod = "initMethod", destroyMethod = "destroyMethod")public LifeCycle lifeCycle() {return new LifeCycle();}@Beanpublic User user() {return new User();}
}
执行结果:
对象被创建了
Aware接口起作用 , t被调用了 , 此时user=com....User@
@注解起作用 , 方法被调用了
接口起作用 , 方法被调用了
@Bean#()起作用 , 方法被调用了
@注解起作用 , 方法被调用了
接口起作用 , 方法被调用了
@Bean#()起作用 , 方法被调用了
分析结果
通过测试的结果可以看出 , Bean在创建和销毁的过程当我们实现了某些接口或者加了某些注解 , 就会回调我们实现的接口或者执行的方法 。
同时 , 在执行t的时候 , 能打印出User对象 , 说明User已经被注入了 , 说明注入发生在t之前 。
这里画张图总结一下Bean创建和销毁过程中调用的顺序 。
回调顺序
红色部分发生在Bean的创建过程 , 灰色部分发生在Bean销毁的过程中 , 在容器关闭的时候 , 就会销毁Bean 。
这里说一下图中的Aware接口指的是什么 。其余的其实没什么好说的 , 就是按照这种方式配置 , 会调用对应的方法而已 。
Aware接口是指以Aware结尾的一些提供的接口 , 当你的Bean实现了这些接口的话 , 在创建过程中会回调对应的set方法 , 并传入响应的对象 。
这里列举几个Aware接口以及它们的作用
接口 作用
are 注入
注入isher事件发布器
注入
注入Bean的名称
有了这些回调 , 比如说我的Bean想拿到 , 不仅可以通过@注入 , 还可以通过实现are接口拿到 。
通过上面的例子我们知道了比如说@注解、@注解、@注解的作用 , 但是它们是如何在不同的阶段实现的呢?接着往下看 。
, 中文名 Bean的后置处理器 , 在Bean创建的过程中起作用 。
是Bean在创建过程中一个非常重要的扩展点 , 因为每个Bean在创建的各个阶段 , 都会回调及其子接口的方法 , 传入正在创建的Bean对象 , 这样如果想对Bean创建过程中某个阶段进行自定义扩展 , 那么就可以自定义来完成 。
说得简单点 , 就是在Bean创建过程中留的口子 , 通过这个口子可以对正在创建的Bean进行扩展 。只不过Bean创建的阶段比较多 , 然后接口以及他的子接口、就提供了很多方法 , 可以使得在不同的阶段都可以拿到正在创建的Bean进行扩展 。
来个Demo
现在需要实现一个这样的需求 , 如果Bean的类型是User , 那么就设置这个对象的属性为 ”三友的java日记“ 。
那么就可以这么写:
class r{
@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {if (bean instanceof User) {//如果当前的Bean的类型是 User , 就把这个对象 username 的属性赋值为 三友的java日记((User) bean).setUsername("三友的java日记");}return bean;}
- 三万字盘点Spring/Boot的那些常用扩展点
- 盘点7个高性价比皮带品牌,简洁百搭广受欢迎 中国皮带十大名牌
- 盘点古代史上30大惊人酷刑:割喉剖腹太吓人了!
- 盘点中国历史上八个奇葩兵器,第四个让人闻风丧胆!
- 盘点西游记中最好看的女妖精到底是谁。 世界之最妖精
- 盘点历史上的6大天灾,日本地震没资格上榜,乌克兰饥荒差点灭国 世界之最黑死病
- 世界上最著名的十把步枪盘点 世界之最步枪
- 清朝吃货大盘点:大学士纪晓岚也是大胃王
- 盘点三国中那些被秒杀的武将:潘凤最惨
- 闻香识女人,盘点世界经典十大香水品牌 世界十大奇迹香水