外贸网站模板哪里下载,网站建设后百度找不到,信息技术教案 建设我们的网站,沈阳设计网站公司对技术的探索#xff0c;一切源于好奇心#xff0c;保持好奇心#xff0c;才能让人更年轻。至今#xff0c;我们已经有了很多创建SpringBoot项目的经验#xff0c;比如我们要创建一个支持web开发的项目#xff0c;我们只需要引入web-starter模块即可。那么#xff0c;Sp…对技术的探索一切源于好奇心保持好奇心才能让人更年轻。至今我们已经有了很多创建SpringBoot项目的经验比如我们要创建一个支持web开发的项目我们只需要引入web-starter模块即可。那么SpringBoot为什么这么神奇引入的依赖变少了配置文件也不见了但项目却可以正常运行。下面我们一起来探究这背后的逻辑1为什么依赖的依赖变少了SpringBoot是如何管理这些依赖的我们分两个点来看起1.1 从pom文件出发首先是有一个父工程的引用我们继续往里面跟踪发现父工程又依赖于另一个父工程继续跟踪发现这是一个pom工程统一控制版本定义了一堆第三方jar包的版本结论所有我们使用了SpringBoot之后由于父工程有对版本的统一控制所以大部分第三方包我们无需关注版本个别没有纳入SpringBoot管理的才需要设置版本号1.2 SpringBoot将所有的常见开发功能分成了一个个场景启动器starter这样我们需要开发什么功能就导入什么场景启动器依赖即可。比如我们现在要开发web项目所以我们导入了spring-boot-starter-web我们来跟踪看看内部也复用一些starter还有Springweb和SpringMVC这也就是为什么我们就可以开发SpringWeb程序的原因结论大家会发现SpringBoot是通过定义各种各样的Starter来管理这些依赖的比如我们需要开发web的功能那么引入spring-boot-starter-web比如我们需要开发模板页的功能那么引入spring-boot-starter-thymeleaf我们需要整合redis那么引入spring-boot-starter-data-redis我们需要整合amqp实现异步消息通信机制那么引入spring-boot-starter-amqp等等就是这么方便2为什么我们不需要配置我们来看看SpringBoot的启动类代码除了一个关键的注解其他都是普通的类和main方法定义那么我们来观察下这个注解背后的东西发现这个注解是一个复合注解包含了很多的信息其他注解都是一个注解的常规配置所以关键看圈中的这两个我们来分析第一个关键注解SpringBootConfiguration我们可以看到内部是包含了Configuration这是Spring定义配置类的注解而Configuration实际上就是一个Component表示一个受Spring管理的组件结论SpringBootConfiguration这个注解只是更好区分这是SpringBoot的配置注解本质还是用了Spring提供的Configuration注解我们再来探讨下一个注解EnableAutoConfiguration这个注解的作用是告诉SpringBoot开启自动配置功能这样就减少了我们的配置那么具体是怎么实现自动配置的我们先来观察这个注解背后的内容所以又到了分析圈中的两个注解了先来分析AutoConfigurationPackage观察其内部实现内部是采用了Import来给容器导入一个Registrar组件所以我们继续往下跟踪来看Registrar内部是什么情况我们可以跟踪源码看看这段是什么信息结论通过源码跟踪我们知道程序运行到这里会去加载启动类所在包下面的所有类这就是为什么默认情况下我们要求定义的类比如controllerservice必须在启动类的同级目录或子级目录的原因再来分析Import(AutoConfigurationImportSelector.class)这个的关键是来看AutoConfigurationImportSelector.class内部的细节在这个类的内部有一个关键的方法我们可以调试来看看结果发现默认加载了好多的自动配置类这些自动配置类会自动给我们加载每个场景所需的所有组件并配置好这些组件这样就省去了很多的配置好了今天就写到这祝大家周末愉快每天都能增值一点点有更多的时间去做自己喜欢的事。