Spring Aware接口---BeanNameAware BeanFactoryAware ApplicationContextAware


前言

    對於應用程序來說,應該盡量減少對spring api的耦合程度,然后有時候為了運用spring提供的一些功能,有必要讓bean了解spring容器對其管理的細節信息,如讓bean知道在容器中是以哪個名稱被管理的,或者讓bean知道beanFactory或這applicationcontext的存在,也就是讓該bean可以獲取到beanfactory或applicationcontext的實例。

1 BeanNameAware接口

如果某個bean需要訪問配置文件中本身bean的id屬性,這個bean類通過實現BeanNameAware接口,在依賴關系確定之后,初始化方法之前,提供回調自身的能力,從而獲得本身bean的id屬性,該接口提供了 void setBeanName(String name)方法,需要指出的時該方法的name參數就是該bean的id屬性。回調該setBeanName方法可以讓bean獲取自身的id屬性

2.BeanFactoryAware接口

  實現了BeanFactoryAware接口的bean,可以直接通過beanfactory來訪問spring的容器,當該bean被容器創建之后,會有一個相應的beanfactory的實例引用。該 接口有一個方法void setBeanFactory(BeanFactory beanFactory)方法通過這個方法的參數創建它的BeanFactory實例,實現了BeanFactoryAware接口,就可以讓Bean擁有訪問Spring容器的能力。

3 ApplicationContextAware接口

在Bean類被初始化后,將會被注入applicationContext實例,該接口有一個方法,setApplicationContext(ApplicationContext context),使用其參數context用來創建它的applicationContext實例

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM