Spring之Aware
Spring 中的Aware用於幫助bean獲取Spring容器的功能。
如這些Aware:
ApplicationContextAware//獲取容器服務
BeanNameAware//獲取BeanName
ResourceLoaderAware//獲取資源加載器服務
想獲取什麼功能就實現什麼Aware即可。
以 ApplicationContextAware爲例,實現獲取Aware功能的步驟:
1、實現相應的Aware接口
2、重寫setXXX方法
此時以及可以獲取到ApplicationContext的功能了,不過還需要將這個Bean加入容器中。
3、加入容器
直接使用註解即可。
@Service
public class AppContextAware implements ApplicationContextAware {
ApplicationContext applicationContext;
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.applicationContext=applicationContext;
}
public void hello(){
//user爲容器中存在的bean
User user = applicationContext.getBean("user", User.class);
System.out.println(user);
//獲取容器的環境、User.name爲設置好的屬性
Environment environment = applicationContext.getEnvironment();
String property = environment.getProperty("User.name");
System.out.println(" 屬性:"+property);
}
}
因爲實現的是ApplicationContextAware接口,所以能獲取到容器的所有功能。
爲避免混亂,通常是用什麼功能獲取那個Aware.