javascript
springboot @enableautoconfiguration注解 -尊龙游戏旗舰厅官网
前言: spring boot中引入了自动配置,让开发者利用起来更加的简便、快捷。比如内嵌的tomcat端口默认配置是8080,这些都属于spring boot自动配置的范畴,当然其自动配置相当多,springboot框架的神奇之处在于@enableautoconfiguration注释,此注释自动载入应用程序所需的所有bean——这依赖于spring boot在类路径中的查找
一、 @enableautoconfiguration
@target({elementtype.type}) @retention(retentionpolicy.runtime) @documented @inherited @autoconfigurationpackage @import({autoconfigurationimportselector.class}) public @interface enableautoconfiguration {string enabled_override_property = "spring.boot.enableautoconfiguration";class<?>[] exclude() default {};string[] excludename() default {}; }其中最关键的要属@import(autoconfigurationimportselector.class),借助autoconfigurationimportselector,@enableautoconfiguration可以帮助springboot应用将所有符合条件的@configuration配置都加载到当前springboot创建并使用的ioc容器。
借助于spring框架原有的一个工具类:springfactoriesloader的支持,@enableautoconfiguration可以智能的自动配置功效才得以大功告成!
在autoconfigurationimportselector类中可以看到通过 springfactoriesloader.loadfactorynames()把 spring-boot-autoconfigure.jar/meta-inf/spring.factories中每一个xxxautoconfiguration文件都加载到容器中,spring.factories文件里每一个xxxautoconfiguration文件一般都会有下面的条件注解:
spring.factories文件如下:
org.springframework.boot.autoconfigure.enableautoconfiguration=\ org.springframework.boot.autoconfigure.admin.springapplicationadminjmxautoconfiguration,\ org.springframework.boot.autoconfigure.aop.aopautoconfiguration,\ org.springframework.boot.autoconfigure.amqp.rabbitautoconfiguration,\ org.springframework.boot.autoconfigure.batch.batchautoconfiguration,\ org.springframework.boot.autoconfigure.cache.cacheautoconfiguration,\ org.springframework.boot.autoconfigure.cassandra.cassandraautoconfiguration,\ org.springframework.boot.autoconfigure.cloud.cloudserviceconnectorsautoconfiguration,\ org.springframework.boot.autoconfigure.context.configurationpropertiesautoconfiguration,\ org.springframework.boot.autoconfigure.context.messagesourceautoconfiguration,\ org.springframework.boot.autoconfigure.context.propertyplaceholderautoconfiguration,\ org.springframework.boot.autoconfigure.couchbase.couchbaseautoconfiguration,\ org.springframework.boot.autoconfigure.dao.persistenceexceptiontranslationautoconfiguration,\ org.springframework.boot.autoconfigure.data.cassandra.cassandradataautoconfiguration,\ org.springframework.boot.autoconfigure.data.cassandra.cassandrareactivedataautoconfiguration,\ org.springframework.boot.autoconfigure.data.cassandra.cassandrareactiverepositoriesautoconfiguration,\ org.springframework.boot.autoconfigure.data.cassandra.cassandrarepositoriesautoconfiguration,\ org.springframework.boot.autoconfigure.data.couchbase.couchbasedataautoconfiguration,\ org.springframework.boot.autoconfigure.data.couchbase.couchbasereactivedataautoconfiguration,\ org.springframework.boot.autoconfigure.data.couchbase.couchbasereactiverepositoriesautoconfiguration,\ org.springframework.boot.autoconfigure.data.couchbase.couchbaserepositoriesautoconfiguration,\ ....- @conditionalonclass : classpath中存在该类时起效
- @conditionalonmissingclass : classpath中不存在该类时起效
- @conditionalonbean : di容器中存在该类型bean时起效
- @conditionalonmissingbean : di容器中不存在该类型bean时起效
- @conditionalonsinglecandidate : di容器中该类型bean只有一个或@primary的只有一个时起效
- @conditionalonexpression : spel表达式结果为true时
- @conditionalonproperty : 参数设置或者值一致时起效
- @conditionalonresource : 指定的文件存在时起效
- @conditionalonjndi : 指定的jndi存在时起效
- @conditionalonjava : 指定的java版本存在时起效
- @conditionalonwebapplication : web应用环境下起效
- @conditionalonnotwebapplication : 非web应用环境下起效
总结
以上是尊龙游戏旗舰厅官网为你收集整理的springboot @enableautoconfiguration注解的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: springcloud教程- 断路器(h
- 下一篇: