本站公告: 敢于浪费哪怕一个钟头时间的人,说明他还不懂得珍惜生命的全部价值。

Spring Boot中自动配置技巧

技巧积累 Mignon 3427浏览 0评论

使用Spring Boot久了你就会发现,假如我是在org.paascloud.platform下写了一个自动配置的类,我在org.paascloud.plugin下写程序的Main函数入库,在org.paascloud.platform下的自动配置类不能被执行,这篇文章就是来解决这个问题的.

类:org.paascloud.platform.autoconfig.TestAutoConfig.java

package org.paascloud.platform.autoconfig;
import org.springframework.context.annotation.Configuration;
/**
 * Created by meyer on 2017/2/10.
 */
@Configuration
public class TestAutoConfig {
    public TestAutoConfig() {
        System.out.println("初始化TestAutoConfig对象.");
    }
}


类:org.paascloud.plugin.App.java

package org.paascloud.plugin;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
 * Created by meyer on 2017/2/10.
 */
@SpringBootApplication
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}


测试1:运行App.java

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.1.RELEASE)
2017-02-10 13:48:09.721  INFO 31254 --- [           main] org.paascloud.plugin.App                 : Starting App on localhost with PID 31254 (/Users/meyer/Documents/workspace/paascloud/paas-cloud-blog-test/target/classes started by meyer in /Users/meyer/Documents/workspace/paascloud/paas-cloud-blog-test)
2017-02-10 13:48:09.724  INFO 31254 --- [           main] org.paascloud.plugin.App                 : No active profile set, falling back to default profiles: default
2017-02-10 13:48:09.782  INFO 31254 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@1188e820: startup date [Fri Feb 10 13:48:09 CST 2017]; root of context hierarchy
2017-02-10 13:48:10.491  INFO 31254 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration' of type [class org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2017-02-10 13:48:10.575  INFO 31254 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'validator' of type [class org.springframework.validation.beanvalidation.LocalValidatorFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2017-02-10 13:48:10.775  INFO 31254 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2017-02-10 13:48:10.785  INFO 31254 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2017-02-10 13:48:10.786  INFO 31254 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.11
2017-02-10 13:48:10.863  INFO 31254 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2017-02-10 13:48:10.863  INFO 31254 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1084 ms
2017-02-10 13:48:10.964  INFO 31254 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]
2017-02-10 13:48:10.967  INFO 31254 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2017-02-10 13:48:10.968  INFO 31254 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2017-02-10 13:48:10.968  INFO 31254 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2017-02-10 13:48:10.968  INFO 31254 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2017-02-10 13:48:11.257  INFO 31254 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@1188e820: startup date [Fri Feb 10 13:48:09 CST 2017]; root of context hierarchy
2017-02-10 13:48:11.333  INFO 31254 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2017-02-10 13:48:11.334  INFO 31254 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2017-02-10 13:48:11.359  INFO 31254 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-02-10 13:48:11.359  INFO 31254 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-02-10 13:48:11.404  INFO 31254 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-02-10 13:48:11.506  INFO 31254 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2017-02-10 13:48:11.556  INFO 31254 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-02-10 13:48:11.559  INFO 31254 --- [           main] org.paascloud.plugin.App                 : Started App in 2.187 seconds (JVM running for 2.678)

我们可以发现org.paascloud.platform.autoconfig.TestAutoConfig.java中输出的内容并没有打印"初始化TestAutoConfig对象."

解决挎包运行

src/resources目录下创建文件META-INF/spring.factories,文件内容填写:

org.springframework.boot.autoconfigure.EnableAutoConfiguration=org.paascloud.platform.autoconfig.TestAutoConfig

测试2:运行App.java

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.5.1.RELEASE)
2017-02-10 13:54:23.177  INFO 31315 --- [           main] org.paascloud.plugin.App                 : Starting App on localhost with PID 31315 (/Users/meyer/Documents/workspace/paascloud/paas-cloud-blog-test/target/classes started by meyer in /Users/meyer/Documents/workspace/paascloud/paas-cloud-blog-test)
2017-02-10 13:54:23.180  INFO 31315 --- [           main] org.paascloud.plugin.App                 : No active profile set, falling back to default profiles: default
2017-02-10 13:54:23.226  INFO 31315 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@1188e820: startup date [Fri Feb 10 13:54:23 CST 2017]; root of context hierarchy
2017-02-10 13:54:23.988  INFO 31315 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration' of type [class org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2017-02-10 13:54:24.041  INFO 31315 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'validator' of type [class org.springframework.validation.beanvalidation.LocalValidatorFactoryBean] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2017-02-10 13:54:24.293  INFO 31315 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http)
2017-02-10 13:54:24.305  INFO 31315 --- [           main] o.apache.catalina.core.StandardService   : Starting service Tomcat
2017-02-10 13:54:24.306  INFO 31315 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.11
2017-02-10 13:54:24.382  INFO 31315 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2017-02-10 13:54:24.382  INFO 31315 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 1159 ms
2017-02-10 13:54:24.468  INFO 31315 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Mapping servlet: 'dispatcherServlet' to [/]
2017-02-10 13:54:24.472  INFO 31315 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2017-02-10 13:54:24.472  INFO 31315 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2017-02-10 13:54:24.472  INFO 31315 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2017-02-10 13:54:24.472  INFO 31315 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2017-02-10 13:54:24.876  INFO 31315 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@1188e820: startup date [Fri Feb 10 13:54:23 CST 2017]; root of context hierarchy
2017-02-10 13:54:24.938  INFO 31315 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2017-02-10 13:54:24.939  INFO 31315 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2017-02-10 13:54:24.962  INFO 31315 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-02-10 13:54:24.962  INFO 31315 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-02-10 13:54:24.997  INFO 31315 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
初始化TestAutoConfig对象.
2017-02-10 13:54:25.101  INFO 31315 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2017-02-10 13:54:25.184  INFO 31315 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)
2017-02-10 13:54:25.188  INFO 31315 --- [           main] org.paascloud.plugin.App                 : Started App in 2.263 seconds (JVM running for 2.633)

从日志中能够明显发现spring在启动的时候执行了org.paascloud.platform.autoconfig.TestAutoConfig

项目结构:

Spring Boot中自动配置技巧 技巧积累

那么肯定有人问spring.factories文件到底是用来做什么的呢?我们来看官方的回答:

http://docs.spring.io/spring-boot/docs/1.5.1.RELEASE/reference/htmlsingle/#boot-features-understanding-auto-configured-beans


官方:spring-boot-autoconfigure中的spring.factories文件

# Initializers    
org.springframework.context.ApplicationContextInitializer=\    
org.springframework.boot.autoconfigure.SharedMetadataReaderFactoryContextInitializer,\    
org.springframework.boot.autoconfigure.logging.AutoConfigurationReportLoggingInitializer    
# Application Listeners    
org.springframework.context.ApplicationListener=\    
org.springframework.boot.autoconfigure.BackgroundPreinitializer    
# Auto Configuration Import Listeners    
org.springframework.boot.autoconfigure.AutoConfigurationImportListener=\    
org.springframework.boot.autoconfigure.condition.ConditionEvaluationReportAutoConfigurationImportListener    
# Auto Configuration Import Filters    
org.springframework.boot.autoconfigure.AutoConfigurationImportFilter=\    
org.springframework.boot.autoconfigure.condition.OnClassCondition    
# Auto Configure    
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.CloudAutoConfiguration,\    
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.CassandraRepositoriesAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.couchbase.CouchbaseDataAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.couchbase.CouchbaseRepositoriesAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchDataAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.elasticsearch.ElasticsearchRepositoriesAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.ldap.LdapDataAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.ldap.LdapRepositoriesAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.mongo.MongoRepositoriesAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.neo4j.Neo4jDataAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.neo4j.Neo4jRepositoriesAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.solr.SolrRepositoriesAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration,\    
org.springframework.boot.autoconfigure.data.web.SpringDataWebAutoConfiguration,\    
org.springframework.boot.autoconfigure.elasticsearch.jest.JestAutoConfiguration,\    
org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration,\    
org.springframework.boot.autoconfigure.gson.GsonAutoConfiguration,\    
org.springframework.boot.autoconfigure.h2.H2ConsoleAutoConfiguration,\    
org.springframework.boot.autoconfigure.hateoas.HypermediaAutoConfiguration,\    
org.springframework.boot.autoconfigure.hazelcast.HazelcastAutoConfiguration,\    
org.springframework.boot.autoconfigure.hazelcast.HazelcastJpaDependencyAutoConfiguration,\    
org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration,\    
org.springframework.boot.autoconfigure.integration.IntegrationAutoConfiguration,\    
org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration,\    
org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\    
org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration,\    
org.springframework.boot.autoconfigure.jdbc.JndiDataSourceAutoConfiguration,\    
org.springframework.boot.autoconfigure.jdbc.XADataSourceAutoConfiguration,\    
org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration,\    
org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration,\    
org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration,\    
org.springframework.boot.autoconfigure.jms.JndiConnectionFactoryAutoConfiguration,\    
org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration,\    
org.springframework.boot.autoconfigure.jms.artemis.ArtemisAutoConfiguration,\    
org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration,\    
org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAutoConfiguration,\    
org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration,\    
org.springframework.boot.autoconfigure.jooq.JooqAutoConfiguration,\    
org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration,\    
org.springframework.boot.autoconfigure.ldap.embedded.EmbeddedLdapAutoConfiguration,\    
org.springframework.boot.autoconfigure.ldap.LdapAutoConfiguration,\    
org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration,\    
org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration,\    
org.springframework.boot.autoconfigure.mail.MailSenderValidatorAutoConfiguration,\    
org.springframework.boot.autoconfigure.mobile.DeviceResolverAutoConfiguration,\    
org.springframework.boot.autoconfigure.mobile.DeviceDelegatingViewResolverAutoConfiguration,\    
org.springframework.boot.autoconfigure.mobile.SitePreferenceAutoConfiguration,\    
org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration,\    
org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration,\    
org.springframework.boot.autoconfigure.mustache.MustacheAutoConfiguration,\    
org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration,\    
org.springframework.boot.autoconfigure.reactor.ReactorAutoConfiguration,\    
org.springframework.boot.autoconfigure.security.SecurityAutoConfiguration,\    
org.springframework.boot.autoconfigure.security.SecurityFilterAutoConfiguration,\    
org.springframework.boot.autoconfigure.security.FallbackWebSecurityAutoConfiguration,\    
org.springframework.boot.autoconfigure.security.oauth2.OAuth2AutoConfiguration,\    
org.springframework.boot.autoconfigure.sendgrid.SendGridAutoConfiguration,\    
org.springframework.boot.autoconfigure.session.SessionAutoConfiguration,\    
org.springframework.boot.autoconfigure.social.SocialWebAutoConfiguration,\    
org.springframework.boot.autoconfigure.social.FacebookAutoConfiguration,\    
org.springframework.boot.autoconfigure.social.LinkedInAutoConfiguration,\    
org.springframework.boot.autoconfigure.social.TwitterAutoConfiguration,\    
org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration,\    
org.springframework.boot.autoconfigure.thymeleaf.ThymeleafAutoConfiguration,\    
org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration,\    
org.springframework.boot.autoconfigure.transaction.jta.JtaAutoConfiguration,\    
org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration,\    
org.springframework.boot.autoconfigure.web.DispatcherServletAutoConfiguration,\    
org.springframework.boot.autoconfigure.web.EmbeddedServletContainerAutoConfiguration,\    
org.springframework.boot.autoconfigure.web.ErrorMvcAutoConfiguration,\    
org.springframework.boot.autoconfigure.web.HttpEncodingAutoConfiguration,\    
org.springframework.boot.autoconfigure.web.HttpMessageConvertersAutoConfiguration,\    
org.springframework.boot.autoconfigure.web.MultipartAutoConfiguration,\    
org.springframework.boot.autoconfigure.web.ServerPropertiesAutoConfiguration,\    
org.springframework.boot.autoconfigure.web.WebClientAutoConfiguration,\    
org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration,\    
org.springframework.boot.autoconfigure.websocket.WebSocketAutoConfiguration,\    
org.springframework.boot.autoconfigure.websocket.WebSocketMessagingAutoConfiguration,\    
org.springframework.boot.autoconfigure.webservices.WebServicesAutoConfiguration    
# Failure analyzers    
org.springframework.boot.diagnostics.FailureAnalyzer=\    
org.springframework.boot.autoconfigure.diagnostics.analyzer.NoSuchBeanDefinitionFailureAnalyzer,\    
org.springframework.boot.autoconfigure.jdbc.DataSourceBeanCreationFailureAnalyzer,\    
org.springframework.boot.autoconfigure.jdbc.HikariDriverConfigurationFailureAnalyzer    
# Template availability providers    
org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider=\    
org.springframework.boot.autoconfigure.freemarker.FreeMarkerTemplateAvailabilityProvider,\    
org.springframework.boot.autoconfigure.mustache.MustacheTemplateAvailabilityProvider,\    
org.springframework.boot.autoconfigure.groovy.template.GroovyTemplateAvailabilityProvider,\    
org.springframework.boot.autoconfigure.thymeleaf.ThymeleafTemplateAvailabilityProvider,\    
org.springframework.boot.autoconfigure.web.JspTemplateAvailabilityProvider

org.springframework.context.ApplicationListener:Application监听器

org.springframework.context.ApplicationContextInitializer:Application上下文初始化

org.springframework.boot.autoconfigure.AutoConfigurationImportListener:自动配置注册Application监听器

org.springframework.boot.autoconfigure.AutoConfigurationImportFilter:自动配置注册Application过滤器

org.springframework.boot.autoconfigure.EnableAutoConfiguration:自动配置

org.springframework.boot.diagnostics.FailureAnalyzer:异常处理

org.springframework.boot.autoconfigure.template.TemplateAvailabilityProvider:模板可用提供者


转载请注明:码农博客 » Spring Boot中自动配置技巧

游客
发表我的评论 换个身份
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  • 验证码 (必填)点击刷新验证码

分享:

支付宝

微信