• 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

  • 相关阅读:
    刷新dbgrid 而不失去当前行位置
    Delphi Code Editor 之 快捷菜单
    Delphi Code Editor 之 几个特性(转)
    Delphi DBGrid双击事件、单元格操作
    在DBGrid中可选中行而又可进入编辑状态
    如何在DBGrid中能支持多项记录的选择
    在Delphi中如何获得SQL中存储过程的返回值?
    Delphi:ADOConnection连接SQLServer自动断网问题解决
    ADO.NET基础必备之SqlCommand.Execute三方法
    Delphi中exit、break、continue等跳出操作的区别
  • 原文地址:https://www.cnblogs.com/jentary/p/11643108.html
Copyright © 2020-2023  润新知