1. 程式人生 > >基於spring boot的Bean 的配置與載入過程

基於spring boot的Bean 的配置與載入過程

      好久沒寫部落格了,前幾天在專案中用到了在系統啟動時候用redis 載入資料,我就在思考,啟動的時候載入資料,那就應該是配置一個bean,至於spring的bean是單例模式,不在本次的討論範圍之內,我記得是spring啟動的例項化的bean都是單例的,只是單純的記憶而已。

       迴歸正題,既然是系統啟動的時候載入資料,那麼必須是配置一個配置類的bean在系統啟動的時候去做一些事情,那麼,這個時候就是要用到spring boot的一個註解----》@Configuration,這個註解用於類上面,作用是將該類作為一個配置注入到spring的容器裡面,當該類使用了該註解以後,在系統啟動的時候,容器就會去掃描該類,並做相關的事情。

      前面說到,需要在系統初始化的時候去做一些事情,把相關的東西系快取到Redis中,那麼就是說,在系統啟動的時候需要去讀取一些配置,也就是說,在啟動的時候,需要初始化一些bean,也就是說,在初始化bean的時候,需要呼叫初始化的方法,即實現IntializingBean介面,重寫afterProertiesSet方法,在這個方法裡面去做一些載入的操作,這便是bean的初始化方法,在bean的初始化的時候我們需要乾的一些事情。

     當然了,如果你有林外的一些需求,比如說,我在初始化之後,想幹掉一些資料,那麼這個時候就可以實現林外一個介面--->DisposableBean,這個介面的含義是在bean被spring消滅之前,你可以乾的一些事情,實現該介面,重寫destroy方法,在該方法當中,可以對bean的銷燬做一些操作,比如當記憶體快爆炸的時候,把不相關的操作放在這裡。主動去銷燬bean。

如下圖,上程式碼

@Configuration
public class Synchrodata4House extends AbstractApiService implements InitializingBean , DisposableBean {

 

   @Override
   public void afterPropertiesSet() throws Exception {
      //TODO

   }

   @Override
   public void destroy() throws Exception {
     //TODO
   }