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() {
        //...
    }
  • 相关阅读:
    [汇编与C语言关系]1.函数调用
    深入理解计算机系统
    设计模式
    深度探索C++对象模型
    More Effective C++
    MySQL必知必会
    数据结构与算法分析
    Java编程思想(后)
    Java编程思想(前十章)
    Java 入门
  • 原文地址:https://www.cnblogs.com/clarino/p/15481994.html
Copyright © 2011-2022 走看看