![](https://img-blog.csdnimg.cn/20190704210739523.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring Boot 自动配置
该专栏专门针对Spring Boot自动配置机制有关的知识点进行介绍。
安迪源文
小步快走
展开
-
Spring Boot 自动配置 : JdbcTemplateAutoConfiguration
概述JdbcTemplateAutoConfiguration是Spring Boot关于JdbcTemplate工作组件的自动配置类。它在单数据源情况下定义如下bean :bean JdbcTemplate jdbcTemplate仅在类型为JdbcOperations的bean不存在时才定义bean NamedParameterJdbcTemplate namedParamet...原创 2019-07-24 14:24:11 · 2992 阅读 · 0 评论 -
Spring Boot 自动配置 : DataSourceAutoConfiguration
概述DataSourceAutoConfiguration是Spring Boot关于关系型数据库数据源的自动配置,目的是在开发人员没有自定义数据源DataSource bean组件时,根据开发人员所引入的包自动定义DataSource bean组件。如果开发人员使用的时嵌入式数据库,H2,Derby或者HSQL,则会使用EmbeddedDataSourceConfiguration定义数据源...原创 2019-07-24 14:07:05 · 11964 阅读 · 2 评论 -
Spring Boot 自动配置 : CacheAutoConfiguration
概述CacheAutoConfiguration是Spring Boot关于缓存机制的自动配置。它在开发人员使用了@EnableCaching注解,引入了底层的缓存实现机制包,底层缓存机制自动配置完成之后才应用。这里的底层缓存机制包指的是redis,hazelcast这种Spring Cache所使用的底层缓存库包。这里的底层缓存机制自动配置指的是RedisAutoConfiguration,H...原创 2019-07-22 15:14:29 · 4760 阅读 · 0 评论 -
Spring Boot 自动配置 : RedisAutoConfiguration
概述Spring Boot关于Spring Data Redis的自动配置类。该自动配置类检测到包spring-data-redis被使用时才应用。并且导入了另外两个配置类LettuceConnectionConfiguration,JedisConnectionConfiguration,这两个配置类是用于配置底层Redis连接组件RedisConnectionFactory,一种基于Lett...原创 2019-07-22 12:10:49 · 9173 阅读 · 0 评论 -
Spring Boot 自动配置 : TaskExecutionAutoConfiguration
概述Spring Boot关于任务执行的自动配置类。主要是确保容器中存在两个bean组件 :1. TaskExecutorBuilder taskExecutorBuilder – TaskExecutor构建器2. ThreadPoolTaskExecutor applicationTaskExecutor,带有别名taskExecutor – 异步任务,调度任务执行的基础组件源代码...原创 2019-07-20 22:58:27 · 6994 阅读 · 0 评论 -
Spring Boot 自动配置 : ValidationAutoConfiguration
概述ValidationAutoConfiguration是Spring Boot对应用中验证机制的自动配置。它主要向容器贡献了两个bean :LocalValidatorFactoryBean defaultValidator这其实就是一般意义上所说的Validator bean仅在容器中不存在类型为Validator的bean时才定义,也就是说如果开发人员自己定义了Validat...原创 2019-07-19 17:13:56 · 3782 阅读 · 0 评论 -
Spring Data JPA 的启动载入方式
开发人员所定义的JPA Respository最终都是以单例bean组件的形式存在的,并且缺省情况下会在容器启动时初始化。启动过程中,这些bean的创建会跟JPA EntityManager组件交互进行验证和元数据分析。实际上,Spring框架支持EntityManagerFactory在一个后台进程中异步启动,因为该过程耗时较长。为了跟此机制有效配合,Spring框架也允许JPA Reposi...原创 2019-07-13 18:19:28 · 2935 阅读 · 1 评论 -
Spring Boot 关于 Hibernate JPA 有关的自动配置
1. HibernateJpaConfiguration(JpaBaseConfiguration)定义组件bean LocalContainerEntityManagerFactoryBean entityManagerFactory定义组件bean PlatformTransactionManager transactionManager2. JpaRepositoriesAutoC...原创 2019-07-12 09:18:30 · 650 阅读 · 0 评论 -
Spring Boot 自动配置 : JpaRepositoriesAutoConfiguration
概述JpaRepositoriesAutoConfiguration是Spring Boot关于Spring Data JPA repository的自动配置,其主要目的是扫描和注册开发人员定义的Spring Data JPA repository bean组件。JpaRepositoriesAutoConfiguration在如下条件满足时才生效:已经存在一个javax.sql.Data...原创 2019-07-11 15:03:17 · 2910 阅读 · 0 评论 -
Spring Boot 配置 : HibernateJpaConfiguration
概述HibernateJpaAutoConfiguration是Spring Boot针对Spring Data JPA + Hibernate组合使用的自动配置类。不过HibernateJpaAutoConfiguration主要的配置工作,是通过导入的配置类HibernateJpaConfiguration来完成的。就配置类HibernateJpaConfiguration而言,它继承自Jp...原创 2019-07-10 18:08:50 · 6060 阅读 · 0 评论 -
Spring Boot 自动配置 : TransactionAutoConfiguration
概述TransactionAutoConfiguration是Spring Boot关于事务的自动配置类。它仅在类PlatformTransactionManager存在于classpath上时生效。并且在以下自动配置类应用之后应用 :JtaAutoConfigurationHibernateJpaAutoConfigurationDataSourceTransactionManager...原创 2019-07-16 11:33:45 · 4474 阅读 · 0 评论 -
Spring Boot 自动配置 : PersistenceExceptionTranslationAutoConfiguration
概述自动配置类PersistenceExceptionTranslationAutoConfiguration的主要目的是启动Spring框架提供的持久化层异常向Spring标准异常的转换机制。对该机制的启动PersistenceExceptionTranslationAutoConfiguration是通过向容器注册一个PersistenceExceptionTranslationPostP...原创 2019-07-13 20:02:35 · 2506 阅读 · 0 评论 -
Spring Boot 配置 : JpaBaseConfiguration
概述JpaBaseConfiguration是Spring Boot提供的对JPA进行配置的抽象基类。针对不同的JPA实现,会有不同的具体实现类。比如Spring Boot内置支持基于Hibernate的JPA,所以它提供了相应的实现HibernateJpaConfiguration。而如果开发人员想使用其他JPA实现,比如EclipseLink或者OpenJPA,就要继承JpaBaseConf...原创 2019-07-09 11:53:03 · 4011 阅读 · 0 评论 -
Spring Boot 自动配置 : HttpMessageConvertersAutoConfiguration
概述针对HttpMessageConverter的自动配置类。HttpMessageConvertersAutoConfiguration会综合考虑jackson,gson,jsonb包的引用情况,以及配置项spring.http.converters.preferred-json-mapper的使用情况决定引入相应的json HttpMessageConverter bean ,并定义一个St...原创 2019-07-08 10:37:39 · 3788 阅读 · 0 评论 -
Spring Boot 自动配置 : HttpEncodingAutoConfiguration
概述自动配置类HttpEncodingAutoConfiguration针对Spring Servlet Web应用,在配置参数spring.http.encoding.enabled不存在或者设置为true时确保bean CharacterEncodingFilter characterEncodingFilter的存在。它的配置过程会利用前缀为spring.http的配置参数项。HttpE...原创 2019-07-07 22:43:04 · 1357 阅读 · 0 评论 -
Spring Boot : Servlet Web 相关的自动配置
ServletWebServerFactoryAutoConfigurationDispatcherServletAutoConfigurationHttpEncodingAutoConfigurationMultipartAutoConfigurationWebMvcAutoConfigurationErrorMvcAutoConfigurationHttpMessageConve...原创 2019-07-07 18:33:55 · 277 阅读 · 0 评论 -
Spring Boot 应用中 Spring Session 的配置(3) : SessionRepositoryFilterConfiguration
概述本文基于以下组合的应用,通过源代码分析一下一个Spring Boot应用中Spring Session的配置过程:Spring Boot 2.1.3.RELEASESpring Session Core 2.1.4.RELEASESpring Session Data Redis 2.1.3.RELEASESpring Web MVC 5.1.5.RELEASE在前两篇文章中,...原创 2019-07-06 12:31:41 · 4843 阅读 · 0 评论 -
Spring Boot 应用中 Spring Session 的配置(2) : 基于Redis的配置 RedisSessionConfiguration
概述本文基于以下组合的应用,通过源代码分析一下一个Spring Boot应用中Spring Session的配置过程:Spring Boot 2.1.3.RELEASESpring Session Core 2.1.4.RELEASESpring Session Data Redis 2.1.3.RELEASESpring Web MVC 5.1.5.RELEASE在上一篇文章中,...原创 2019-07-06 12:30:49 · 11292 阅读 · 1 评论 -
Spring Boot 应用中 Spring Session 的配置(1) : 自动配置 SessionAutoConfiguration
概述本文基于以下组合的应用,通过源代码分析一下一个Spring Boot应用中Spring Session的配置过程:Spring Boot 2.1.3.RELEASESpring Session Core 2.1.4.RELEASESpring Session Data Redis 2.1.3.RELEASESpring Web MVC 5.1.5.RELEASE在一个Sprin...原创 2019-07-04 12:52:05 · 3771 阅读 · 0 评论 -
Spring boot 自动配置 : MultipartAutoConfiguration
概述EnableAutoConfiguration是Spring Boot的一个自动配置类,配置Spring MVC应用中如何使用MVC控制器进行错误处理。Spring MVC应用遇到错误时浏览器上看到的Whitelabel Error Page错误白页,就是在这里定义的。因为是针对Spring MVC应用的配置机制,所以EnableAutoConfiguration必须在以下条件下才生效 :...原创 2019-04-03 19:48:10 · 4486 阅读 · 0 评论 -
Spring Boot 自动配置 : AopAutoConfiguration
概述自动配置AopAutoConfiguration类的主要任务是根据配置参数使用注解@EnableAspectJAutoProxy。该自动配置类通过注解声明了自己生效的条件是 :以下类必须存在于classpath :EnableAspectJAutoProxyAspectAdviceAnnotatedElement配置参数spring.aop.auto值不为false...原创 2019-07-05 15:19:43 · 4685 阅读 · 2 评论 -
Spring Boot 自动配置 ErrorMvcAutoConfiguration
概述自动配置ErrorMvcAutoConfiguration类配置了一个MVC error控制类用于渲染错误信息页面。源代码package org.springframework.boot.autoconfigure.web.servlet.error;// 省略 import 行/** * EnableAutoConfiguration Auto-configuration t...原创 2019-07-04 21:02:18 · 4767 阅读 · 0 评论 -
Spring Boot 自动配置 : HibernateJpaAutoConfiguration
概述HibernateJpaAutoConfiguration 是Spring Boot针对使用JPA + Hibernate的自动配置类,它的主要目的是在特定条件被满足的情况下导入配置类HibernateJpaConfiguration。关于运行时使用的JPA + Hibernate组件的真正的配置工作,被委托给了HibernateJpaConfiguration来完成。HibernateJ...原创 2019-06-28 09:06:46 · 9154 阅读 · 0 评论 -
Springboot 自动配置 : SecurityFilterAutoConfiguration
Spring Boot的自动配置类。用于向Servlet容器 注册一个名称为securityFilterChainRegistration的bean, 实现类是DelegatingFilterProxyRegistrationBean。该 bean 的目的是注册另外一个 Servlet Filter bean 到 Servlet 容器,实现类为 DelegatingFilterProxy 。Del...原创 2019-05-20 08:57:45 · 1707 阅读 · 0 评论 -
Spring Boot 自动配置 : SecurityAutoConfiguration
SecurityAutoConfiguration是Spring Boot提供的安全自动配置类。它仅在类DefaultAuthenticationEventPublisher存在于classpath上时才进行配置。配置包含如下几个方面 :注册安全属性bean SecurityProperties,相应的配置属性来自外部配置项 spring.security,这些属性会被相应的安全配置机制采用...原创 2019-05-17 14:41:50 · 14628 阅读 · 1 评论 -
Springboot 内部工具类 SpringFactoriesLoader 源码解析
类名 : SpringFactoriesLoader所在包 : org.springframework.core.io.support官方文档概述该类并不对外暴露给应用开发者使用,而是spring框架自己使用的内部工具类,本身本声明为 abstract,不可以被实例化。在 Springboot 应用启动的过程中,这个类的工作很重要, 启动逻辑使用该类从classpath上所有jar包中找...原创 2018-11-13 11:25:26 · 3083 阅读 · 1 评论 -
例子讲解Springboot注解@EnableXXX如何工作
概述Springboot 提供了很多@EnableXXX这样的注解,通过使用这些注解,我们能够很方便地启用某些功能。那么这些@EnableXXX注解又是怎么工作的呢?关于@EnableXXX注解的工作原理,简单地来讲,就是它主要通过另外一个注解@Import,而关于@Import如何使用以及背后的工作原理,可以参考我的另外一篇文章 :Spring @Import 的使用及其工作原理分析。本文不再...原创 2018-11-11 14:42:35 · 2894 阅读 · 0 评论 -
Spring Boot 自动配置机制的工作原理
spring-boot-autoconfigure 是如何工作的?原创 2017-11-20 18:07:08 · 2961 阅读 · 0 评论 -
Spring Boot基于特定条件创建Bean例子 : ConditionalOnMissingClass
结合使用注解@ConditionalOnMissingClass和@Bean,可以仅当某些类不存在于 classpath 上时候才创建某个Bean:@Configurationpublic class ConditionOnMissingClassConfig { @Bean @ConditionalOnMissingClass(value={"com.sample.Dum...原创 2018-07-30 15:05:45 · 9304 阅读 · 0 评论 -
Spring Boot基于特定条件创建Bean例子 : ConditionalOnMissingBean
结合使用注解@ConditionalOnMissingBean和@Bean,可以做到只有特定名称或者类型的Bean不存在于BeanFactory中时才创建某个Bean :@Configurationpublic class ConditionalOnMissingBeanConfig { @Bean public A beanA(){ return new ...原创 2018-07-30 14:57:15 · 17685 阅读 · 2 评论 -
Spring Boot基于特定条件创建Bean例子 : ConditionalOnClass
结合使用注解@ConditionalOnClass和@Bean,可以仅当某些类存在于 classpath 上时候才创建某个Bean:@Configurationpublic class ConditionOnClassConfig { @Bean @ConditionalOnClass(value={java.util.HashMap.class}) public ...原创 2018-07-30 14:46:03 · 4290 阅读 · 0 评论 -
Spring Boot基于特定条件创建Bean例子 : ConditionalOnBean
只有当特定名称或者类型的Bean存在于BeanFactory时才创建某个Bean :@Configurationpublic class ConditionalOnBeanConfig { @Bean public A beanA(){ return new A(); // 创建一个Bean,名称是 beanA,不需要满足什么前置条件, } ...原创 2018-07-30 14:30:04 · 5015 阅读 · 1 评论 -
Spring EnableAutoConfigurationImportSelector 是如何工作的 ?
功能EnableAutoConfigurationImportSelector 是一个DeferredImportSelector,由 spring boot autoconfigure 从版本1.3开始,提供用来处理EnableAutoConfiguration自动配置。EnableAutoConfigurationImportSelector继承自AutoConfigurationIm原创 2017-11-20 12:04:23 · 9128 阅读 · 5 评论 -
Springboot 的内部工具类 SpringFactoriesLoader 简介
所在包 : org.springframework.core.io.support类名 : SpringFactoriesLoader官方文档类介绍 :该类并不对外暴露给应用开发者使用,而是spring框架自己使用的内部工具类,本身被声明为 abstract,不可以被实例化。在 Spring boot 应用启动的过程中,这个类的工作很重要,启动逻辑使用该类从cl...原创 2017-11-02 09:31:21 · 1326 阅读 · 0 评论 -
Spring Boot 自动配置 : ConfigurationPropertiesAutoConfiguration
概述ConfigurationPropertiesAutoConfiguration是Spring Boot关于处理使用注解@ConfigurationProperties的bean组件的自动配置类。具体来讲,ConfigurationPropertiesAutoConfiguration引用了注解@EnableConfigurationProperties,而注解@EnableConfigu...原创 2019-09-02 11:11:37 · 1327 阅读 · 0 评论