Spring之Aware

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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章