SpringCloud SpringCloud是目前国内使用最广泛的微服务框架。官网地址:https:spring。ioprojectsspringcloud SpringCloud集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用体验 其中常见的组件包括: 另外,SpringCloud底层是依赖于SpringBoot的,并且有版本的兼容关系,如下: 我们的版本是Hoxton。SR10,因此对应的SpringBoot版本是2。3。x版本服务拆分原则不同微服务,不要重复开发相同业务微服务数据独立,不要访问其它微服务的数据库微服务可以将自己的业务暴露为接口,供其它微服务调用 服务拆分示例 clouddemo:父工程,管理依赖orderservice:订单微服务,负责订单相关业务userservice:用户微服务,负责用户相关业务 要求:订单微服务和用户微服务都必须有各自的数据库,相互独立订单服务和用户服务都对外暴露Restful的接口订单服务如果需要查询用户信息,只能调用用户服务的Restful接口,不能查询用户数据库SpringCloud入门案例导入Sql语句 将cloudorder。sql和clouduser。sql导入到mysql中,数据库右键运行sql文件 clouduser表中初始数据如下: cloudorder表中初始数据如下: cloudorder表中持有clouduser表中的id字段创建maven父工程 修改pom。xml,添加依赖projectxmlnshttp:maven。apache。orgPOM4。0。0xmlns:xsihttp:www。w3。org2001XMLSchemainstancexsi:schemaLocationhttp:maven。apache。orgPOM4。0。0http:maven。apache。orgmavenv400。xsdmodelVersion4。0。0modelVersiongroupIdcom。sgggroupIdSpringCloudTestartifactIdversion1。0versionpackagingpompackagingparentgroupIdorg。springframework。bootgroupIdspringbootstarterparentartifactIdversion2。3。9。RELEASEversionrelativePathparentpropertiesproject。build。sourceEncodingUTF8project。build。sourceEncodingproject。reporting。outputEncodingUTF8project。reporting。outputEncodingjava。version1。8java。versionspringcloud。versionHoxton。SR10springcloud。versionmysql。version5。1。47mysql。versionmybatis。version2。1。1mybatis。versionpropertiesdependencyManagementdependencies!springClouddependencygroupIdorg。springframework。cloudgroupIdspringclouddependenciesartifactIdversion{springcloud。version}versiontypepomtypescopeimportscopedependency!mysql驱动dependencygroupIdmysqlgroupIdmysqlconnectorjavaartifactIdversion{mysql。version}versiondependency!mybatisdependencygroupIdorg。mybatis。spring。bootgroupIdmybatisspringbootstarterartifactIdversion{mybatis。version}versiondependencydependenciesdependencyManagementdependenciesdependencygroupIdorg。projectlombokgroupIdlombokartifactIddependencydependenciesproject创建springboot两个子工程 注意:选择maven构建,Java版本选择对应JDK的8,打包方式为jar springboot版本等生成pom。xml再改掉,选择这4个依赖,点击创建修改子工程userservice的pom。?xmlversion1。0encodingUTF8?projectxmlnshttp:maven。apache。orgPOM4。0。0xmlns:xsihttp:www。w3。org2001XMLSchemainstancexsi:schemaLocationhttp:maven。apache。orgPOM4。0。0https:maven。apache。orgxsdmaven4。0。0。xsdmodelVersion4。0。0modelVersionparentSpringCloudTestartifactIdgroupIdcom。sgggroupIdversion1。0versionparentuserserviceartifactIddependenciesdependencygroupIdorg。springframework。bootgroupIdspringbootstarterwebartifactIddependencydependencygroupIdorg。mybatis。spring。bootgroupIdmybatisspringbootstarterartifactIddependencydependencygroupIdmysqlgroupIdmysqlconnectorjavaartifactIddependencydependencygroupIdorg。springframework。bootgroupIdspringbootstartertestartifactIddependencydependenciesbuildfinalNameappfinalNamepluginsplugingroupIdorg。springframework。bootgroupIdspringbootmavenpluginartifactIdpluginpluginsbuildproject修改orderservice子工程的pom。?xmlversion1。0encodingUTF8?projectxmlnshttp:maven。apache。orgPOM4。0。0xmlns:xsihttp:www。w3。org2001XMLSchemainstancexsi:schemaLocationhttp:maven。apache。orgPOM4。0。0https:maven。apache。orgxsdmaven4。0。0。xsdmodelVersion4。0。0modelVersionparentSpringCloudTestartifactIdgroupIdcom。sgggroupIdversion1。0versionparentorderserviceartifactIddependenciesdependencygroupIdorg。springframework。bootgroupIdspringbootstarterwebartifactIddependencydependencygroupIdorg。mybatis。spring。bootgroupIdmybatisspringbootstarterartifactIddependencydependencygroupIdmysqlgroupIdmysqlconnectorjavaartifactIddependencydependencygroupIdorg。springframework。bootgroupIdspringbootstartertestartifactIddependencydependenciesbuildfinalNameappfinalNamepluginsplugingroupIdorg。springframework。bootgroupIdspringbootmavenpluginartifactIdpluginpluginsbuildproject项目工程服务启动 会出现这样的菜单: