為物件設計作用域,設定延遲載入,設定生命週期方法(瞭解)
阿新 • • 發佈:2020-10-07
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時,此方法不會執行)。