ad-common模块中关于引入spring-boot-starter-web依赖的疑惑
来源:4-2 【跟我一起编码】统一响应处理的开发

量能授官
2019-02-14
来源:ad-common模块中为什么还要添加spring-boot-starter-web的依赖,不是在imooc-ad-spring-cloud(根目录)中已经添加了依赖吗?
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.2.RELEASE</version>
</parent>
做法:ad-common模块中删除spring-boot-starter-web的依赖,此模块中使用到springboot中的注解无法找到来源。
问题:ad-common模块不能使用imooc-ad-spring-cloud下引入的springboot包吗?ad-common模块中spring-boot-starter-web未曾指定版本,为啥跟imooc-ad-spring-cloud中spring-boot-starter-parent的版本一致?
1回答
-
同学你好:
首先需要解释下 <parent></parent> 标签,这个标签用来定义要继承的父 pom 的信息,它用来定义SpringBoot 项目可能用到的依赖和插件声明以及一些资源文件声明,这样我们就可以在自己的 SpringBoot 项目中用到这些依赖或者插件的时候直接引用,而不用指定版本号。例如:spring-boot-starter-web、spring-boot-starter-test 依赖、spring-boot-maven-plugin 插件。
spring-boot-starter-parent 是 SpringBoot 项目的父级依赖,指定了 parent 之后,当前的项目就是 SpringBoot 项目了。spring-boot-starter-parent 是一个特殊的 starter,它用来提供相关的 Maven 默认依赖,使用它之后,常用的包依赖可以省去 version 标签。
spring-boot-starter-web 是 SpringBoot 项目中的一个模块,由于在 imooc-ad-spring-cloud 中指定了 parent(SpringBoot 的父级依赖),所以,可以不需要在 ad-common 中指定 starter-web 的版本。
在 ad-common 模块中引用 spring-boot-starter-web 是因为使用到 @RestControllerAdvice、@ExceptionHandler 等注解或类文件。
欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!
172019-06-12
相似问题