SpringBoot

一.項目啓動過程分析:spring

SpringBoot項目在啓動時,首先基於啓動入口類上的註解描述,進行自動配置並掃描指定包以及子包中的類進行加載,而後檢測類上是否有Spring框架中指定的註解描述,有的話,則將類交給Spring框架中的BeanFactroy工廠接口的實現類對象,此工廠對象會基於反射建立Bean的實例,假如指定了生命週期方法,還會調用生命週期方法,當實例建立了之後,Spring框架還會基於類的做用域描述,將實例存儲到不一樣做用域的容器中.

二.Spring框架中的註解:框架

@SpringBootApplication註解描述的類爲項目的啓動入口
@Component是Spring中用於描述Bean類的一個註解。
@SpringBootTest 註解用於告訴spring框架,此測試類交給spring管理。
@Autowired註解描述屬性時,用於告訴spring框架要爲此屬性注入一個值.
@Lazy註解用於描述類,其目的是告訴spring框架此類支持延遲加載,一般會配合單例做用域使用,

默認是true。測試

@Scope 是Spring中用於定義Bean對象做用域的一個註解,其經常使用的值有

singleton(整個內存有一份Bean實例,此實例什麼時候建立與類的延遲加載特性配置有關,此實例建立之後,生命週期會由spring框架管理),prototype(每次獲取都會建立新實例,此實例會在須要時建立與lazy特性無關,這個實例建立之後,不會交給spring管理,spring能夠對其初始化,但不負責銷燬。)等。prototype

@PostConstruct 註解用於描述bean對象生命週期方法中的初始化方法,此方法會在對象的構造方法以後執行(是對象建立之後的初始化)。
@PreDestroy 註解用於描述Bean對象生命週期方法中的銷燬方法,此方法會在對象銷燬以前執行(看成用域爲prototype時,此方法不會執行)。

三.Spring框架管理Bean對象的優點:code

Spring框架能夠爲由它管理的對象(Bean)提供懶加載策略(@Lazy),做用域(@Scope),生命週期方法(@PostConstruct,@PreDestroy),以實現對象對系統的有效使用,同時,Spring框架還能夠基於對象和對象之間的依賴關係,下降對象和對象之間的耦合性,提升程序的可維護性和可擴展性.
相關文章
相關標籤/搜索