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

  • 相关阅读:
    【Eclipse】怎样把代码复制到word中并保持颜色
    windows下配置gvim
    这是给开发者的弥天大谎还是至理名言?
    Linux中常用软件安装(基于Ubuntu)
    MyEclipse 9.1优化技巧
    【数据库复习】函数依赖
    Windows下使用Flex入门
    【数据库复习】SQL
    浏览器中的“Linux”
    Unity开发原则
  • 原文地址:https://www.cnblogs.com/jentary/p/11643108.html
Copyright © 2011-2022 走看看