当前位置: 首页 > news >正文

湖南做网站 干净磐石网络嘉峪关市住房和城乡建设局网站

湖南做网站 干净磐石网络,嘉峪关市住房和城乡建设局网站,wordpress首页留言板,长沙定制网站Spring Boot 的自动配置是其核心特性之一#xff0c;它帮助开发者**开箱即用**地使用各种第三方库或 Spring 组件#xff0c;而无需手动配置 Bean。这一切的背后#xff0c;都依赖于 Spring Boot 的自动配置机制。 我们分两部分来说#xff1a; Spring Boot 自…Spring Boot 的自动配置是其核心特性之一它帮助开发者**开箱即用**地使用各种第三方库或 Spring 组件而无需手动配置 Bean。这一切的背后都依赖于 Spring Boot 的自动配置机制。 我们分两部分来说 Spring Boot 自动配置的整体流程 我们依赖的第三方包是如何一步步被自动配置并导入使用的 一、Spring Boot 自动配置的整体流程 1. SpringBootApplication 注解启动入口 SpringBootApplication public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);} }SpringBootApplication 是一个组合注解包含 SpringBootConfiguration实际上就是 Configuration EnableAutoConfiguration ComponentScan 2. 关键点EnableAutoConfiguration 这个注解的作用就是启用自动配置底层依赖的是 AutoConfigurationPackage Import(AutoConfigurationImportSelector.class)这里的核心逻辑是导入一批配置类这些类就定义了我们依赖的组件如何被自动装配。 3. AutoConfigurationImportSelector 工作机制 它会去加载 META-INF/spring.factoriesSpring Boot 2.x 或 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.importsSpring Boot 3.x中的配置类列表。 这些类就是一堆以 xxxAutoConfiguration 结尾的类比如 # META-INF/spring.factoriesSpring Boot 2.x org.springframework.boot.autoconfigure.EnableAutoConfiguration\ org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration,\ org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\ org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration,\ ...Spring Boot 会按需加载这些自动配置类也就是判断你是否引入了相关依赖、是否配置了对应属性等来决定要不要配置这个组件。 二、依赖的包是如何一步步自动配置导入的 举个例子我们引入了 spring-boot-starter-data-redis程序中就能直接用 RedisTemplate。 来看这条链路是怎么走通的 步骤 1你引入了 Redis 的 starter dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId /dependency它的依赖会自动包含 spring-data-redis lettuce-core默认客户端 spring-boot-autoconfigure 步骤 2自动配置类生效 在 spring-boot-autoconfigure 包的 spring.factories 文件中你会看到 org.springframework.boot.autoconfigure.EnableAutoConfiguration\ org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration这个配置类就被加载了。 步骤 3RedisAutoConfiguration 中的 Bean 被自动注册 打开源码可以看到 Configuration ConditionalOnClass(RedisOperations.class) ConditionalOnBean(RedisConnectionFactory.class) EnableConfigurationProperties(RedisProperties.class) public class RedisAutoConfiguration {BeanConditionalOnMissingBean(name redisTemplate)public RedisTemplateObject, Object redisTemplate(RedisConnectionFactory redisConnectionFactory) {...} }这表示 如果项目中有 Redis 相关类即你引入了相关依赖 如果容器里没有手动注入 RedisTemplate 那就自动帮你注册一个默认的 RedisTemplate Bean 步骤 4你就可以在代码中使用了 Autowired private RedisTemplate redisTemplate;你并没有显式配置 Redis 相关的 Bean但因为自动配置已经做完了所以直接就能使用。 总结流程图 SpringBootApplication↓ EnableAutoConfiguration↓ AutoConfigurationImportSelector↓ 读取 spring.factories / spring-autoconfigure-metadata↓ 加载 xxxAutoConfiguration 类↓ 根据条件注册 BeanConditionalOnClass / OnBean / OnProperty↓ 你就能直接使用这些 Bean补充如何自定义或覆盖自动配置 如果你自己定义了同名 Bean比如 RedisTemplate就会覆盖自动配置ConditionalOnMissingBean 生效。 想要禁用某个自动配置可以通过 spring.autoconfigure.exclude:- org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration如果你有某个具体依赖包的例子比如 MyBatis、Kafka、Elasticsearch我也可以具体分析它的自动配置链路。需要的话随时说~
http://www.pierceye.com/news/894406/

相关文章:

  • 屏显的企业网站应该怎么做沈阳网站推广优化公司哪家好
  • 外包服务有哪些汕头seo网站建设
  • 新公司网站怎么做推广wordpress 中文 seo 插件
  • 网站建设客户分析国家企业信息公示网(广东)
  • php网站开发技术文档天津市装修公司排名榜
  • qq群优惠券里面网站怎么做的长春网站建设找源晟
  • 如何建一个公司的网站百度快速收录入口
  • 网络市场营销湘潭seo优化
  • 网站建设的模块传奇合成版2合1雷霆版手游
  • wordpress快站怎么样js网站开发视频
  • 滕州市 网站建设公司合肥网站建设方案案例
  • 外贸网站推广企业ida设计公司上海
  • 网站怎么做图片转链湄潭建设局官方网站
  • 泰州品牌网站建设二建报名时间2023年报名时间
  • 企业网站优化兴田德润怎么样wordpress标签不输出文章
  • 百度站长平台论坛永嘉网站制作
  • 月嫂公司网站建设构思免费的短视频素材库
  • 2017做哪些网站致富邢台市行政区划图
  • 深圳和海枫建设集团有限公司网站国内外基于vue框架的网站建设现状
  • 珠海免费网站制作购物网站前台模板
  • 小程序软件制作网站捷克注册公司网站
  • 做网站细节电商网站建设 平台
  • 网站建设方案书1500全国中小企业网站
  • 阳江市建设局网站合肥最新消息今天
  • 做关于什么样的网站好货代去什么网站开发客户
  • 中国工程建设造价管理协会网站漳州seo顾问
  • 什么网站可以做2.5D场景网站过程建设
  • google移动网站建站十大原则室内装修工人培训班
  • 自己做网站要会什么软件下载搭建网站有什么用
  • 天津做网站找谁网站如何做首面关键词