zoukankan      html  css  js  c++  java
  • 【SpringBoot 注解】合集

    参考: https://www.baeldung.com/spring-boot-annotations

    @SpringBootApplication

    mark the main class of a Spring Boot application:

    @SpringBootApplication encapsulates @Configuration@EnableAutoConfiguration, and @ComponentScan annotations with their default attributes.

    @EnableAutoConfiguration

    @EnableAutoConfiguration enables auto-configuration. It means that Spring Boot looks for auto-configuration beans on its classpath and automatically applies them.

    we have to use this annotation with @Configuration:

    @Configuration
    @EnableAutoConfiguration
    class VehicleFactoryConfig {}

    Auto-Configuration Conditions

    when we write our custom auto-configurations, we want Spring to use them conditionally. We can place the annotations in this section on @Configuration classes or @Bean methods.

    @ConditionalOnClass and @ConditionalOnMissingClass

    Using these conditions, Spring will only use the marked auto-configuration bean if the class in the annotation's argument is present/absent:

    @Configuration
    @ConditionalOnClass(DataSource.class)
    class MySQLAutoconfiguration {
        //...
    }

    @ConditionalOnBean and @ConditionalOnMissingBean

    @Bean
    @ConditionalOnBean(name = "dataSource")
    LocalContainerEntityManagerFactoryBean entityManagerFactory() {
        // ...
    }

    @ConditionalOnProperty

    @Bean
    @ConditionalOnProperty(
        name = "usemysql", 
        havingValue = "local"
    )
    DataSource dataSource() {
        // ...
    }

    @ConditionalOnResource

    @ConditionalOnResource(resources = "classpath:mysql.properties")
    Properties additionalProperties() {
        // ...
    }

    @ConditionalOnWebApplication and @ConditionalOnNotWebApplication

    @ConditionalOnWebApplication
    HealthCheckController healthCheckController() {
        // ...
    }

    @ConditionalExpression

    @Bean
    @ConditionalOnExpression("${usemysql} && ${mysqlserver == 'local'}")
    DataSource dataSource() {
        // ...
    }

    @Conditional

     we can create a class evaluating the custom condition. We tell Spring to use this custom condition with @Conditional:

    @Conditional(HibernateCondition.class)
    Properties additionalProperties() {
        //...
    }
  • 相关阅读:
    763. 划分字母区间(贪心算法)
    1282. 用户分组(贪心算法)
    698. 划分为k个相等的子集
    560. 和为K的子数组
    面试题 16.10. 生存人数
    Python:对列表进行排序并相应地更改另一个列表?
    数据竞赛总结
    面试提问之请你介绍一下xxx方法
    常用数学符号读法
    round() 函数
  • 原文地址:https://www.cnblogs.com/clarino/p/15481994.html
Copyright © 2011-2022 走看看