这篇文章将为大家详细讲解有关Spring Boot中如何整合Web项目,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
整个项目分为如下几部分:
spring-boot-autoconfigure: 具体的各功能实现,每个功能通过package的形式组织
spring-boot-commons: 一些公共的工具类或共享类
spring-boot-dependencies: 依赖的集中维护管理,集中管理各个依赖的版本号
spring-boot-parent: 提供一个基本的父项目,web服务项目可通过继承该项目创建
spring-boot-starters: 各功能的starter项目,引入相应starter即引入相应功能
spring-boot-dependencies 项目
该项目主要是对所有依赖进行集中定义。通过 dependencyManagement 对依赖进行声明,
<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <scope>import</scope> <type>pom</type> </dependency> <dependency> <groupId>cn.jboost.springboot</groupId> <artifactId>spring-boot-commons</artifactId> <version>${base-spring-boot.version}</version> </dependency> ... </dependencies> </dependencyManagement>
这样,所有依赖的版本可以集中统一管理,在其它地方引用的时候可以省去版本的声明,如
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <optional>true</optional> </dependency>
spring-boot-autoconfigure 项目
该项目是各功能自动配置的具体实现,以package的形式进行组织,如 tkmapper 包下实现了通用Mapper的自动配置,error 包下实现了错误处理的自动配置, 等等。
该项目继承了spring-boot-dependencies, 在项目的 pom.xml 中,依赖部分声明类似于
<dependencies> <!-- spring denpendencies --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <optional>true</optional> </dependency> ... </dependencies>
不需要再指定版本号。通过将optional设置为true,表示该依赖不会进行传递,即另外一个项目引用该项目时,optional的依赖不会被传递依赖过去。
在 resources/META-INF/spring.factories 文件中,声明了所有自动配置类, 如下
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ cn.jboost.springboot.autoconfig.tkmapper.MapperAutoConfiguration,\ cn.jboost.springboot.autoconfig.aoplog.AopLoggerAutoConfiguration,\ cn.jboost.springboot.autoconfig.alimq.config.AliMQAutoConfiguration,\ cn.jboost.springboot.autoconfig.qiniu.QiniuAutoConfiguration,\ cn.jboost.springboot.autoconfig.swagger.Swagger2AutoConfiguration,\ cn.jboost.springboot.autoconfig.druid.DruidAutoConfiguration,\ cn.jboost.springboot.autoconfig.error.exception.ExceptionHandlerAutoConfiguration,\ cn.jboost.springboot.autoconfig.alimns.MnsAutoConfiguration,\ cn.jboost.springboot.autoconfig.redis.RedisClientAutoConfiguration,\ cn.jboost.springboot.autoconfig.web.CORSAutoConfiguration
spring-boot-starters 项目
该项目包含按功能划分的多个子项目,主要用来引入依赖以达到自动配置的依赖条件,使引入对应starter时,能让自动配置生效。如通用Mapper集成的 tkmapper-spring-boot-starter 依赖如下
<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> </dependency> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> </dependency> </dependencies>
关于Spring Boot中如何整合Web项目就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。