Spring Gossip: Aware 相關介面

對於Bean來說,最佳的情況是它根本不知道自己是被Spring容器所管理,Bean可以作自己該從事的工作,而不會與Spring容器產生耦合。

然而有時候,您必須讓Bean知道容器管理它的一些細節,必須讓Bean知道自己在容器中是以哪個名稱所管理的,或者是讓它知道 BeanFactory、ApplicationContext 的存在,例如若Bean可以意識到ApplicationContext的存在的話,在Bean的某些動作發生時,可以發出事件讓感興趣的接受者來處理。

Spring中提供一些Aware相關介面,像是org.springframework.beans.factory.BeanNameAware、 org.springframework.beans.factory.BeanFactoryAware、 org.springframework.context.ApplicationContextAware等等,實作這些Aware介面的Bean在被初始之後,可以取得一些相對應的資源。

例如實作BeanNameAware介面的Bean,在屬性設定完成後、初始化方法之前(例如InitializingBean的 afterPropertiesSet()方法或自定義的init方法),會將Bean於定義檔中的名稱透過setBeanFactory()方法設定給 Bean:

package org.springframework.beans.factory;
public interface BeanNameAware {
public void setBeanName(String name);
}


實作BeanFactoryAware介面的Bean,在屬性設定完成後、初始化方法之前,Spring容器將會注入BeanFactory的實例:

package org.springframework.beans.factory;
public interface BeanFactoryAware {
public void setBeanFactory(BeanFactory beanFactory) throws BeansException;
}


而實作ApplicationContextAware的Bean,在Bean被初始後,將會被注入ApplicationContext的實例:

package org.springframework.context;
public interface ApplicationContextAware {
public void setApplicationContext(ApplicationContext context) throws BeansException;
}


另外還有org.springframework.context.ResourceLoaderAware介面,可以讓Bean取得ResourceLoader實例,並進一步取得相關的資源檔案。

然而必須注意的是,一但Bean意識到Spring的相關資源,就表示Bean開始與Spring產生耦合,因而就不易移植至其它的應用程式或框架之中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值