zoukankan      html  css  js  c++  java
  • springboot--自动配置

    自动配置中使用的条件化注解

    条件化注解     配置生效条件
    @ConditionalOnBean     配置了某个特定Bean
    @ConditionalOnMissingBean     没有配置特定的Bean
    @ConditionalOnClass     Classpath里有指定的类
    @ConditionalOnMissingClass     Classpath里缺少指定的类
    @ConditionalOnExpression     给定的SpEL表达式计算结果为true
    @ConditionalOnJava     Java的版本匹配特定值或者一个范围值
    @ConditionalOnJndi     参数中给定的JNDI位置必须存在一个,如果没有参数,则需要JNDI InitialContext
    @ConditionalOnProperty     指定的配置属性要有一个明确的值
    @ConditionalOnResource     Classpath里有指定的资源
    @ConditionalOnWebApplication     这是一个Web应用程序
    @ConditionalOnNotWebApplication     这不是一个Web应用程序

    @Configuration
    @ConditionalOnClass({DataSource.class, EmbeddedDatabaseType.class})
    @EnableConfigurationProperties({DataSourceProperties.class})
    @Import({Registrar.class, DataSourcePoolMetadataProvidersConfiguration.class})
    public class DataSourceAutoConfiguration {
        ... ...
      
      @Configuration
      @ConditionalOnProperty(prefix = "spring.datasource", name = "jmx-enabled")
      @ConditionalOnClass(name = "org.apache.tomcat.jdbc.pool.DataSourceProxy")
      @Conditional(DataSourceAutoConfiguration.DataSourceAvailableCondition.class)
      @ConditionalOnMissingBean(name = "dataSourceMBean")
      protected static class TomcatDataSourceJmxConfiguration {
      
         @Bean
         public Object dataSourceMBean(DataSource dataSource) {
            if (dataSource instanceof DataSourceProxy) {
               try {
                  return ((DataSourceProxy) dataSource).createPool().getJmxPool();
               }
               catch (SQLException ex) {
                  logger.warn("Cannot expose DataSource to JMX (could not connect)");
               }
            }
            return null;
         }
    
      }
        ... ...
    }

    https://www.cnblogs.com/niechen/p/9262452.html

  • 相关阅读:
    剑指Offer——对成的二叉树
    剑指Offer——二叉树的下一个节点
    路径总和I、II、III
    性能调优工具
    关于在程序中内存检测的一些知识
    ptmalloc、tcmalloc及 jemalloc总结
    [LeetCode] 43. 字符串相乘
    [LeetCode] 155. Min Stack
    [LeetCode] 380. Insert Delete GetRandom O(1)
    linux内存过高排查
  • 原文地址:https://www.cnblogs.com/jentary/p/11643108.html
Copyright © 2011-2022 走看看