次日代碼

次日代碼:
/**
 * FAQ?
 * 1)假如將此類交給spring管理,請問默認spring什麼時候建立此對象?你怎麼知道的?
 * 2)假如一個對象建立之後,存儲到內存,長時間不用會有什麼影響?
 * 3)你知道Spring中,Bean對象的延遲加載特性嗎?(瞭解)
 * 4)你知道什麼場景下這個對象適合延遲加載嗎?大對象,稀少用。
 * 5)對象建立之後,應用結束要銷燬對象嗎?
 * 6)程序中的每一個對象都有生命週期(正確),不見得每一個對象都有生命週期方法。*/
@Scope("prototype") //每次從spring容器獲取對象都會建立一個新的實例
//@Scope("singleton")//默認就是單例做用域(這個類的實例在一個spring容器中默認只有一份)
//@Lazy(false)//默認爲true
//@Lazy(true)//此註解用於告訴spring框架,它描述的類的實例,假如暫時用不到,就不要先建立。
//@Lazy(value=true)
@Component
public class ObjectPool {
    /**構建對象時會執行對象的構造函數*/
    public ObjectPool() {
       System.out.println("ObjectPool()");
    }
    /**@PostConstruct 註解描述的方法會在對象構建之後執行,用於執行一些初始化操做*/
    @PostConstruct 
    public void init() {
        System.out.println("init()");
    }
    /**@PreDestroy 註解描述的方法會在單例對象銷燬以前執行,spring容器在銷燬以前
 * 會先將容器(Bean池)中的對象進行移除,在移除對象時,假如對象中定義了生命週期銷
 * 毀方法,此時還會調用對象的生命週期銷燬方法(在這樣的方法中能夠作一些資源釋放操
 * 做)。
 * */
    @PreDestroy
    public void close() {
        System.out.println("close()");
    }
}
相關文章
相關標籤/搜索