1. 程式人生 > 實用技巧 >為物件設計作用域,設定延遲載入,設定生命週期方法(瞭解)

為物件設計作用域,設定延遲載入,設定生命週期方法(瞭解)

 1 package com.cy.pj.common.cache;
 2 @Component
 3 @Scope("singleton")
 4 @Lazy        
 5 public class DefaultCache {
 6         public DefaultCache() {
 7            System.out.println("cache()");
 8         }
 9         
10         @PostConstruct
11         public void init() {
12                 System.out.println("init()");
13 } 14 15 @PreDestroy 16 public void destory() { 17 System.out.println("destory"); 18 } 19 }
  • @Scope 是Spring中用於定義Bean物件作用域的一個註解,其常用的值有singleton(整個記憶體有一份Bean例項,此例項何時建立與類的延遲載入特性配置有關,此例項建立以後,生命週期會由spring框架管理),prototype(每次獲取都會建立新例項,此例項會在需要時建立與lazy特性無關,這個例項建立以後,不會交給spring管理,spring可以對其初始化,但不負責銷燬。)等。

  • @Lazy註解用於描述類,其目的是告訴spring框架此類支援延遲載入,通常會配合單例作用域使用。

  • @PostConstruct 註解用於描述bean物件生命週期方法中的初始化方法,此方法會在物件的構造方法之後執行。

  • @PreDestroy 註解用於描述Bean物件生命週期方法中的銷燬方法,此方法會在物件銷燬之前執行(當作用域為prototype時,此方法不會執行)