springboot与springcloud的关系


1 . 问题描述

随着springboot、springcloud的不断迭代升级,开发效率不断提升,越来越多的开发团队加入到spring的大军中,今天用通俗的语言,介绍下什么是springboot,springcloud以及它们之间的关系。

2. 方案

2.1 首先说下maven

关于maven不想多说了,maven主要有两个功能,一是通过gav定位获取jar包,一是编译打包。

gav示例

        
            com.alibaba
            fastjson
            1.2.40
        

2.2 springboot介绍

2.2.1 介绍

其实springboot就是一个maven项目,只不过使用了spring提供的多个starter来加载多个相关依赖包,starter简单说就是maven包的组合。

比如:只需要一个web的starter包就能直接启动web服务了( springboot项目快速搭建)

        
            org.springframework.boot
            spring-boot-starter-web
            2.0.3.RELEASE
        
2.2.2 依赖图

如下图,一个starter包集合了N个包。

2.3 springcould介绍

2.3.1 新建springcloud项目

新建springboot项目,选择Eureka server就可以新建eureka注册中心了。

2.3.2 pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>

    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.4.RELEASE
         
    
    com.spc
    eurekaserver
    0.0.1-SNAPSHOT
    eurekaserver
    Demo project for Spring Boot

    
        1.8
        Greenwich.SR1
    

    
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-client
        
        
            org.springframework.cloud
            spring-cloud-starter-netflix-eureka-server
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    



2.3.3 依赖图

”spring-cloud-netflix-eureka-server“包中已经包含:”spring-boot-starter-web“,图太了,就不截图了。

2.4 关系总结

通过上面的描述可以总结出:

(1) maven是springboot的基础,springboot项目本身就是maven项目。在maven项目中使用springboot的多个starter加几个约定,就能成为springboot项目了。

(2)springboot是springcloud的基础,springcloud本身是springboot项目。

(3)关系:maven->springboot->springcloud

maven是springboot的基础,springboot是springcloud的基础,maven不依赖于springboot,springboot不依赖与springcloud。