最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot使用自動配置xxxAutoConfiguration

 更新時間:2021年12月24日 15:19:25   作者:快鳥  
這篇文章介紹了SpringBoot自動配置xxxAutoConfiguration的使用方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

常用的類:

  • @ConditionalOnProperty(name = "use.redis.session.store", havingValue = "true")
  • @ConditionalOnClass(Session.class)
  • @AutoConfigureAfter(RedisAutoConfiguration.class)
  • @ConditionalOnWebApplication
  • @ConditionalOnMissingBean(RedisHttpSessionConfiguration.class)
  • @SpringBootApplication(exclude ={SessionAutoConfiguration.class})

舉例:以MybatisAutoConfiguration為例

  • 1. 在jar包中/META-INF/spring.factories中配置
    org.springframework.boot.autoconfigure.EnableAutoConfiguration=org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration
    spring在啟動時會去自動加載這個bean
  • 2. MybatisAutoConfiguration.java上加上@Configuration
  • 3. 如果需要通過自定義構(gòu)造函數(shù)來構(gòu)造bean,則加上構(gòu)造函數(shù)
public MybatisAutoConfiguration(MybatisProperties properties,
                                  ObjectProvider<Interceptor[]> interceptorsProvider,
                                  ResourceLoader resourceLoader,
                                  ObjectProvider<DatabaseIdProvider> databaseIdProvider,
                                  ObjectProvider<List<ConfigurationCustomizer>> configurationCustomizersProvider) {
    this.properties = properties;
    this.interceptors = interceptorsProvider.getIfAvailable();
    this.resourceLoader = resourceLoader;
    this.databaseIdProvider = databaseIdProvider.getIfAvailable();
    this.configurationCustomizers = configurationCustomizersProvider.getIfAvailable();
}

構(gòu)造函數(shù)中依賴的Bean,Spring會自動從Spring beanFactory容器中去找到適配的bean來傳入

參數(shù):

  • MybatisProperties properties --> 依賴MybatisProperties 這個bean,而MybatisProperties 是一個@ConfigurationProperties。則加上@EnableConfigurationProperties(MybatisProperties.class),讓bean MybatisProperties 先加載
  • ObjectProvider<Interceptor[]> interceptorsProvider --> 依賴 org.apache.ibatis.plugin.Interceptor[],但又不確定 Interceptor 的bean是否存在,則通過ObjectProvider<Interceptor[]> 去獲取,interceptorsProvider.getIfAvailable()
  • ResourceLoader resourceLoader --> 依賴 bean ResourceLoader,直接在 Spring 容器中找到相應(yīng)的 bean
  • ObjectProvider<DatabaseIdProvider> databaseIdProvider --> 同上
  • ObjectProvider<List<ConfigurationCustomizer>> configurationCustomizersProvider --> 同上

附:斷點打在MybatisAutoConfiguration 的構(gòu)造函數(shù)上,查看調(diào)用棧,便可以看出端倪

以上所述是小編給大家介紹的SpringBoot使用自動配置xxxAutoConfiguration,希望對大家有所幫助。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

最新評論

高邑县| 清水河县| 尼木县| 华蓥市| 哈尔滨市| 威信县| 保亭| 烟台市| 乌拉特中旗| 麻阳| 万全县| 睢宁县| 怀仁县| 阿城市| 旌德县| 五家渠市| 历史| 东丽区| 崇信县| 兴海县| 弥勒县| 慈溪市| 城口县| 确山县| 新泰市| 昌图县| 汽车| 芦溪县| 渝北区| 崇州市| 陵川县| 浏阳市| 珲春市| 广东省| 克拉玛依市| 保德县| 若尔盖县| 文安县| 遵义市| 萨嘎县| 龙游县|