spring 系統啟動加載的類


1. 實現InitializingBean接口  重寫afterPropertiesSet()方法

2. @Configuration @Bean

3. 實現ApplicationContextAware接口  重寫setApplicationContext(ApplicationContext applicationContext)方法

4.@PostConstruct  在構造函數之后執行

5.@Import導入類

public class User{}

@Import({User.class})
public class App {
  public static void main(String[] args) throws Exception {

  ConfigurableApplicationContext context = SpringApplication.run(App.class, args);
  System.out.println(context.getBean(User.class));
  context.close();
  }
}

 

 springboot 的多個@Configuration注解的配置類如何控制加載順序?

//責任鏈模式

1.可以通過@Order來指明優先級,Order值越小,優先級越高
2.如果配置之間有依賴關系,可以通過@ConditionalOnBean來指定依賴關系

https://www.iteye.com/blog/wiselyman-2217192


@Configuration
@AutoConfigureBefore(ElasticLogger.class)
public class EsConfig { //在ElasticLogger之前加載EsConfig

@Configuration
@AutoConfigureAfter(ElasticLogger.class)
public class EsConfig { //在ElasticLogger之后加載EsConfig


spring bean的初始化執行順序:
        1.spring bean的初始化執行順序:構造方法 --> @PostConstruct注解的方法 --> afterPropertiesSet方法 --> init-method指定的方法。具體可以參考例子

           2.afterPropertiesSet通過接口實現方式調用(效率上高一點),@PostConstruct和init-method都是通過反射機制調用

 

 


spring包依賴

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM