1、首先介绍一下springboot
(1)我们平时写简单的微服务时,一般以spring-boot-starter-parent开始。spring-boot-starter-parent的父依赖是spring-boot-dependencies,如下图所示:
(2)若项目分多模块,一般引用spring-boot-dependencies pom,自定义项目parent,如下图所示:
(3)若需自定义starter,一般是将自己项目的功能模块加上spring-boot-starter,封装成starter。注意需要选择spring-boot-dependencies的某一个版本,然后在这个版本中的选择依赖的第三方版本,这样即可将自定义starter和springboot的版本保持兼容。
2、springcloud主要有两大项目,spring-cloud和spring-cloud-dataflow,注意这是两个大项目。下文没有特别说明,springcloud单指spring-cloud。
(1)springcloud在早期版本中有spring-cloud-parent(2015年之前),依赖spring-boot-starter-parent,之后修改为spring-cloud-starter-parent依赖spring-boot-starter-parent。
(2)springcloud的功能,不直接依赖spring-cloud-starter-parent,而是从spring-cloud-build开始。如下图所示:
(3)spring-cloud-dependencies把springcloud的核心功能汇总在一起,所以用户使用springcloud时,一般仅引用spring-cloud-dependencies即可,如果使用其他非核心功能模块或仅单独使用某一核心模块,可引用对应的dependencies。
(4)springcloud各模块的版本规则,和自定义springboot功能模块基本类似。demo-parent(parent也可省略)依赖spring-cloud-build,然后开发自己的各功能模块。如果需要额外定义starter,只要把自己开发的功能模块组合起来定义starter即可。
3、spring-cloud共有55个项目,功能项目由43个。
12个项目 | 43个项目 |
spring-cloud-build spring-cloud-core-tests spring-cloud.github.io spring-functions-catalog |
spring-cloud-app-broker spring-cloud-bindings spring-cloud-bus spring-cloud-circuitbreaker spring-cloud-cli spring-cloud-cloudfoundry spring-cloud-commons spring-cloud-common-security-config spring-cloud-config spring-cloud-connectors spring-cloud-consul spring-cloud-contract spring-cloud-dataflow spring-cloud-dataflow-apps-plugin spring-cloud-dataflow-build spring-cloud-dataflow-common spring-cloud-dataflow-samples spring-cloud-dataflow-ui spring-cloud-deployer spring-cloud-deployer-cloudfoundry spring-cloud-deployer-kubernetes spring-cloud-deployer-local spring-cloud-function spring-cloud-gateway spring-cloud-jenkins-jobs spring-cloud-kubernetes spring-cloud-netflix spring-cloud-openfeign spring-cloud-open-service-broker spring-cloud-schema-registry spring-cloud-skipper spring-cloud-sleuth spring-cloud-static spring-cloud-stream spring-cloud-stream-binder-aws-kinesis spring-cloud-stream-binder-kafka spring-cloud-stream-binder-rabbit spring-cloud-stream-jenkins-jobs spring-cloud-stream-samples spring-cloud-stream-starters spring-cloud-task spring-cloud-vault spring-cloud-zookeeper |