栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java > SpringBoot

Springboot两要素

SpringBoot 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Springboot两要素

为什么需要有Springboot,我们知道一些脚本语言框架在web应用开发方面非常方便,比如常见的ROR,Node,php等,而使用tomcat开发一个简单的hello world的页面服务器就需要做很多配置,尽管可以使用之前的SSH web三剑客,但也仍然比较麻烦。Springboot通过开箱即用的组件化的方式简化了这一切,让javaer也可以享受到脚本语言一样的快速高效。

Springboot如何实现开箱即用的。我们知道Springboot是基于Spring框架,要实现开箱即用,有两点比较重要,第一,可以自动将组件加载到Spring容器中;第二,提供一种默认配置,同时也可以进行自定义。这样在引入一个组件之后,系统自动加载代码与默认配置,无需任何其他操作就可以直接使用,如何有特殊需求,可以修改配置来进行自定义。

首先第一点,自动加载Bean主要是利用SpringFactoriesLoader,类似Java SPI机制,我们在很多其他地方也常常见到,比如Logger,java中的logging会根据引入的jar包中的logfactory文件来查找目前使用的logger框架,同样,Springboot也会查找当前路径下jar中各个starter中的spring.factories文件,找到每个组件的扩展信息,例如ApplicationContextInitializer,ApplicationListener,EnableAutoConfiguration等,其中EnableAutoConfiguration非常重要,Springboot会将所有的查找到的EnableAutoConfiguration加载到容器中,这样可以完成组件的初始化,Bean加载等操作了。其次每个组件会设置一套需要的配置数据元数据,并且一般都会有一套默认数据,而且用户还可以在application.properties中进行自定义,最小化简化用户配置。

例如如果要为一个RPC框架提供一个Springboot的组件,可以直接引入starter就可以使用,应该如何实现呢。

我们可以为RPC的服务端与消费端分别定义一个注解:@Provider 与@Consumer,  每个注解里面会有一些服务需要的参数,例如版本号,超时时间等,然后新增一个RPCEnableAutoConfiguration,让RPCEnableAutoConfiguration中首先初始化RPC需要的一些信息,例如与地址注册服务器的链接等,然后扫描容器中的所有带有@Provider 与@Consumer中的Bean或者字段信息,然后根据每个注解中的信息生成RPC需要的Bean并注册到容器,这样就实现了一个RPC开箱即用的组件了。要达到的效果大致如下:


RPC配置类

服务提供类



作者:真海
链接:https://www.jianshu.com/p/91c22b4e1105


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/235634.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号