spring 初始化加載一些數據

項目在加載完畢後馬上執行afterPropertiesSet 方法 ,而且可使用spring 注入好的beanspring

  1. 第一種方式 
    寫一個類,實現BeanPostProcessor,這個接口有兩個方法 
    (1)postProcessBeforeInitialization方法,在spring中定義的bean初始化前調用這個方法; 
    (2)postProcessAfterInitialization方法,在spring中定義的bean初始化後調用這個方法; 
    這個雖然也能執行,可是是每次加載一個bean都會去執行,不太知足個人要求,我只須要一次就ok了,可是這個接口針對某個專門的bean有用ide

  2. 第二種方式 編寫一個實現ApplicationListener的listener類post

    @Service
    public class StartupListener implements
               ApplicationListener<ContextRefreshedEvent > {
    
          public static String ShopNum ;
          @Autowired
          ShopService shopService;
    
          @Override
          public void onApplicationEvent(ContextRefreshedEvent event) {
    
               if ( event.getApplicationContext (). getParent() == null) {
                   // TODO 這裏寫下將要初始化的內容
                   Shop shopByShopNum = shopService
                             .getShopByShopNum ("e7-80-2e-e8-6c-a6" );
                    System.out .println ("----------------------------" );
               } }}
  3. 最後一種方式編寫InitializingBean的實現類code

    @Service
    public class Test implements InitializingBean{
    
          @Autowired
          ShopService shopService;
          @Override
          public void afterPropertiesSet() throws Exception {
               Shop shopByShopNum = shopService.getShopByShopNum( "e7-80-2e-e8-6c-a6");
               System.out .println ("----------------------------" );
          }
    
    }

    項目在加載完畢後馬上執行afterPropertiesSet 方法 ,而且可使用spring 注入好的bean接口

相關文章
相關標籤/搜索