SpringBoot的底层原理是什么


本文小编为大家详细介绍“SpringBoot的底层原理是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“SpringBoot的底层原理是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在日常开发中只需要引入下面的依赖就可以开发Servlet进行访问了。那这是怎么做到的呢?今天就来一探究竟首先新建一个maven项目rick-spring-boot,并创建两个子项目分别是spring-boot和user,其中spring-boot项目就是模拟手写一个简单springboot,user就是用来测试手写的spring-boot的。user项目-测试工程user项目包含pom.xml、UserController和UserService以及user项目的启动类RickApplication,而RickSpringApplication.run()是需要手写的启动类以及@RickSpringBootApplication注解,都是需要在spring-boot项目实现。首先来看RickSpringApplication.run(RickApplication.class)方法需要做的事情:(1)创建spring容器,并将传入的class注册到spring容器中(2)启动web服务,如tomcat,用来处理请求,并通过DispatchServlet将请求分发到Servlet进行处理。RickApplication是被@RickSpringBootApplication注解修饰的,从如下代码可以看出RickApplication是配置类,在被注册到spring容器后,spring就会解析这个类。启动user项目RickApplication的main方法,访问UserController至此一个简单的spring-boot项目就整合完成了。实现tomcat和jetty的切换在使用springboot时,如果我们不想使用tomcat作为请求处理服务,而是jetty或者其他的web服务,通常只需要将相关的tomcat依赖进行排除,然后引入jetty的依赖就可以了,这就是springboot的自动装配的机制。接下来看看是如何实现的定义一个WebServer接口和两个实现类(tomcat和jetty),并写好启动tomcat和jetty服务的代码定义AutoConfiguration接口,用来标识需要自动装配的类。再定义一个WebServerAutoConfiguration类,它被表示为spring的一个配置类,最终我们需要导入这个类由sprin免费云主机域名g来解析它,随后spring会解析@Bean注解的方法来加载Bean。注意这里下面两个方法还定义了@RickConditionalOnClass注解来决定是否需要解析这个bean,如果满足条件则进行解析,即应用内存在Tomcat或者Server的Class,会解析对应方法的Bean,来看@RickConditionalOnClass注解:当spring解析被@RickConditionalOnClass注解的方法时,spring就知道它被@Conditional修饰,并会在解析时执行RickOnClassConditional的match()方法,来判断是否满足加载bean的条件。match()会尝试加载传入的类路径名,如果应用内引入相关的jar则会加载成功返回true,反之,返回false。引入WebServerAutoConfiguration,最简单粗暴的方式就是通过@Import(WebServerAutoConfiguration.class)导入该类。但是spring-boot不可能这么做,成千上百的自动配置写在代码里肯定不好。spring通过SPI机制,在resources目录下创建如下目录和文件定义一个类实现DeferredImportSelector接口,并实现selectImports(),通过JDK的ServiceLoader加载以上文件中的类。通过@Import(WebServerImportSelector.class)注解导入该类spring在解析配置类的时候就会执行selectImports(),从而将WebServerAutoConfiguration导入到spring容器中,spring就会解析这个配置类。至此,springboot就做到了只需要修改user工程的maven依赖就能切换tomcat和jetty服务了重启user项目读到这里,这篇“SpringBoot的底层原理是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注百云主机行业资讯频道。

相关推荐: centos7本地yum如何安装php

本篇内容介绍了“centos7本地yum如何安装php”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! centos7本地yum安装php的方法:1、在Cento…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/21 22:52
下一篇 03/21 22:52

相关推荐