1. 程式人生 > >關於 Spring 的 Aware 介面

關於 Spring 的 Aware 介面

一、Spring所提供的Aware介面:

BeanNameAware:在Bean中得到它在IOC容器中的Bean的例項的名字。

BeanFactoryAware:在Bean中得到Bean所在的IOC容器

ApplicationContextAware:在Bean中得到Bean所在的應用上下文

MessageSourceAware:在Bean中可以得到訊息源

ApplicationEventPublisherAware:在bean中可以得到應用上下文的事件釋出器

ResourceLoaderAware:在Bean中可以得到ResourceLoader,從而載入外部對應的Resource資源。

二、以BeanNameAware、ApplicationContextAware介面舉例說明:

<bean id ="myContext" class="com.jsun.test.springDemo.aware.MyApplicationContext"></bean>
//實現BeanNameAware介面,並重寫setBeanName()方法,讓Bean獲取自己在BeanFactory配置中的名字(id或name)
//實現ApplicationContextAware介面,並重寫setApplicationContext()方法
public class MyApplicationContext
implements BeanNameAware,ApplicationContextAware{
private String beanName; //注入的beanName即為MyApplicationContext在BeanFactory配置中的名字(根據情況是id或者name) @Override public void setBeanName(String beanName) { this.beanName = beanName; System.out.println("MyApplicationContext beanName:"
+beanName); } @Override public void setApplicationContext(ApplicationContext context) throws BeansException { //通過重寫的介面方法,獲取spring容器例項context,進而獲取容器中相關bean資源 System.out.println(context.getBean(this.beanName).hashCode()); } }