温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

spring boot 之注解

发布时间:2020-07-30 20:31:27 来源:网络 阅读:3879 作者:乾坤刀 栏目:软件技术

@EnableAutoConfiguration
有这个注解,spring boot 就会根据classpat中的jar依赖,来猜测你将要开发一个什么样的spring应用。比如:spring-boot-starter-web这个依赖,则springboot就会自动嵌入tomcat和springMVC的相关依赖,并在启动的时候,启动为一个web应用。并会查找相应的配置参数,如果没有,则使用默认值。如:server.port=8080;
同时,在spring boot中会有一些默认的配置。如:DataSourceAutoConfiguration就会自动配置dataSource。而@EnableAutoConfiguration这个注解就会默认增加这些默认配置。同时,也可以排出。
如:@EnableAutoConfiguration(exclude = DataSourceAutoConfiguration.class)

@SpringBootApplication
它是@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan的整合。用于application bootstrap.

@Component
它是一个类级注解。当应用是通过注解来配置或xml配置扫描的时候,这个类就会被自动检测。根据@Component衍生出来的一些特殊类型的注解,如:Repository、Service、Controller,都是Component。

@Import
导入@Configuration的配置class.相当于xml中的import标签。

@Configuration
启动配置参数,相当于xml中的beans。

@ConfigurationProperties
ConfigurationProperties指定application.yml中的配置参数。并加载到对应的class中。
如:@ConfigurationProperties(prefix = "spring.datasource");

@EnableConfigurationProperties
EnableConfigurationProperties指定被ConfigurationProperties注解的类,使其有效。
如:@EnableConfigurationProperties(DataSourceProperties.class)

@Conditional
与@ConditionalOnClass作用一样,只不过是自定义实现。

@ConditionalOnProperty
当application.yaml中有对应的参数,则此类生效;
如:@ConditionalOnProperty(prefix = "spring.datasource", name = "type")

@ConditionalOnClass
当classpath中有ConditionalOnClass注解中指定的类,则此类型生效。
如:

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

@ConditionalOnMissingBean
与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 {}

@AutoConfigureAfter
指的是指定的configuration配置之后,再配置当前配置类。
如:

@Configuration
@ConditionalOnClass(PlatformTransactionManager.class)
@AutoConfigureAfter({ JtaAutoConfiguration.class, HibernateJpaAutoConfiguration.class,
        DataSourceTransactionManagerAutoConfiguration.class,
        Neo4jDataAutoConfiguration.class })
@EnableConfigurationProperties(TransactionProperties.class)
public class TransactionAutoConfiguration {}

@AutoConfigureOrder
自动配置的顺序。

@Configuration
@ConditionalOnClass({ JdbcTemplate.class, PlatformTransactionManager.class })
@AutoConfigureOrder(Ordered.LOWEST_PRECEDENCE)
@EnableConfigurationProperties(DataSourceProperties.class)
public class DataSourceTransactionManagerAutoConfiguration {}
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI