1. 程式人生 > >spring boot 之註解

spring boot 之註解

spring boot 註解

@EnableAutoConfiguration
有這個註解,spring boot 就會根據classpat中的jar依賴,來猜測你將要開發一個什麽樣的spring應用。比如:spring-boot-starter-web這個依賴,則springboot就會自動嵌入tomcat和springMVC的相關依賴,並在啟動的時候,啟動為一個web應用。並會查找相應的配置參數,如果沒有,則使用默認值。如:server.port=8080;

@Component
它是一個類級註解。當應用是通過註解來配置或xml配置掃描的時候,這個類就會被自動檢測。根據@Component衍生出來的一些特殊類型的註解,如:Repository、Service、Controller,都是Component。

@Import
導入@Configuration的配置class.相當於xml中的import標簽。

@Configuration
啟動配置參數,相當於xml中的<beans>

@ConfigurationProperties
ConfigurationProperties指定application.yml中的配置參數。並加載到對應的class中。
如:@ConfigurationProperties(prefix = "spring.datasource");

@EnableConfigurationPropertiesEnableConfigurationProperties指定被@ConfigurationProperties註解的類,使其有效。

br/>EnableConfigurationProperties指定被@ConfigurationProperties註解的類,使其有效。

@ConditionalOnClass當classpath中有@ConditionalOnClass註解中指定的類,則此類型生效。
br/>當classpath中有@ConditionalOnClass註解中指定的類,則此類型生效。

@Configuration
@ConditionalOnClass({ DataSource.class, EmbeddedDatabaseType.class })
@EnableConfigurationProperties(DataSourceProperties.class)
@Import({ DataSourcePoolMetadataProvidersConfiguration.class,
        DataSourceInitializationConfiguration.class })
public class DataSourceAutoConfiguration 

@ConditionalOnMissingBean與@ConditionalOnClass相反,當classpath中沒有註解指定的類。則此配置類生效。
br/>與@ConditionalOnClass相反,當classpath中沒有註解指定的類。則此配置類生效。

    @Configuration
    @Conditional(PooledDataSourceCondition.class)
    @ConditionalOnMissingBean({ DataSource.class, XADataSource.class })
    @Import({ DataSourceConfiguration.Hikari.class, DataSourceConfiguration.Tomcat.class,
            DataSourceConfiguration.Dbcp2.class, DataSourceConfiguration.Generic.class,
            DataSourceJmxConfiguration.class })
    protected static class PooledDataSourceConfiguration {

    }

@Conditional
與@ConditionalOnClass作用一樣,只不過是自定義實現。

@ConditionalOnProperty
當application.yaml中有對應的參數,則此類生效;
如:@ConditionalOnProperty(prefix = "spring.datasource", name = "type")

spring boot 之註解