Spring Boot 起步依赖

参考书《Spring Boot实战》

1.Spring Boot起步依赖

       Spring项目的依赖管理也很费力。需要决定项目要用哪些库,还要考虑库的版本和其他库的版本不会用冲突。

      原来的Spring项目中,如果要使用某项功能,需要考虑支持该功能需要什么库?需要考虑 库的Group和Artifact?库的版本号?哪个版本不会和项目中的其他依赖发生冲突?

      Spring Boot就可以指定基于功能依赖。Spring Boot通过起步依赖为项目的依赖管理提供帮助。如果应用程序是Web应用程序(功能),不需要向项目pom.xml文件中添加一堆单独的依赖,可以直接向项目中添加Web起步依赖。如果应用程序需要用到JPA持久化(功能),加入jpa起步依赖;如果需要安全功能(功能),就加入security起步依赖。添加依赖时不需要指定依赖的版本号,依赖的版本号由当前是使用的Spring Boot版本号来决定。

      起步依赖就是特殊的Maven依赖,利用了传递依赖解析,把常用库聚合在一起,组成几个为特定功能而定制的依赖。Spring Boot通过起步依赖:直接引入相关起步依赖就行,我们不需要考虑支持某种功能需要什么库减少了依赖数量,而且不需要考虑这些库的那些版本。如果我们需要什么功能,就往项目中加入该功能的起步依赖就好了。    

    添加起步依赖的方法:可以在初始话应用程序的时候,选择起步依赖。或者在开发过程中修改pom.xml文件来添加起步依赖。

    查看当前使用的依赖,可在pom.xml所在目录 在cmd窗口执行 mvn dependency:tree 命令

    在特殊的情况下覆盖或排除这些传递依赖: 比如Spring Boot的Web起步依赖,它传递依赖了 Jackson JSON库,如果应用程序里不需要这个库,可以选择把这个库排除掉来给应用程序瘦身。或者Web传递依赖的Jackson JSON库是Jackson 2.3.4版本,但是应用程序需要使用Jackson 2.4.3版本,那可以在pom.xml文件中覆盖 Web传递依赖的Jackson库。Maven总是会用最近的依赖  。PS:如果没有特殊情况,那就最好不要 排除或覆盖掉 这些起步依赖的 传递依赖,因为这些传递依赖都是经过测试的,不会用版本不兼容的情况出现。

<!--排除依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId> 
    <exclusions>
        <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
        </exclusion>
    </exclusions>
</dependency>
<!--用指定依赖版本 覆盖 传递依赖-->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.4.3</version>
</dependency>

     比如一个项目用Spring MVC构造一个REST API, 并将JSON作为资源表述,遵循JSR-303规范的声明式校验,使用嵌入式的Tomcat服务器来提供服务。那么原来的Spring项目 在Maven里至少需要以下8个依赖。 

org.springframework:spring-core
org.springframework:spring-web
org.springframework:spring-webmvc
com.fasterxml.jackson.core:jackson-databind
org.hibernate:hibernate-validator
org.apache.tomcat.embed:tomcat-embed-core
org.apache.tomcat.embed:tomcat-embed-el
org.apache.tomcat.embed:tomcat-embed-logging-juli

     但是如果使用Spring Boot的起步依赖,只需添加Spring Boot的Web起步依赖,一个就可以达到以上目的。它会根据依赖传递把其它依赖引入项目,我们无需考虑。

org.springframword.boot:spring-boot-starter-web

 

2.Spring Boot 起步依赖和自动配置的关系

    Spring Boot提供了简化企业家开发绝大多数场景的starter pom(起步依赖),只要在应用程序中使用了需要的starter pom,相关的技术配置将会消除,就可以得到Spring Boot提供的自动配置的Bean。 除了Spring Boot官方的 起步依赖,还是很多第三方为Spring Boot提供的起步依赖。

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值