AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
**本章从本节往后的内容,都不用特别的关注。只是遵循一定的规则将单体应用dongbb的代码,拆分模块的方式,移动到dongbb-cloud。没涉及到Spring Cloud微服务技术。**大家看看内容即可,了解一下项目的基础结构,不用动手操作,可以直接从构建好的基础源码上开始下一章的学习。从下一章开始才真正的讲解微服务技术。 **本章从本节往后的内容,都不用特别的关注。只是遵循一定的规则将单体应用dongbb的代码,拆分模块的方式,移动到dongbb-cloud。没涉及到Spring Cloud微服务技术。**大家看看内容即可,了解一下项目的基础结构,不用动手操作,可以直接从构建好的基础源码上开始下一章的学习。从下一章开始才真正的讲解微服务技术。 **本章从本节往后的内容,都不用特别的关注。只是遵循一定的规则将单体应用dongbb的代码,拆分模块的方式,移动到dongbb-cloud。没涉及到Spring Cloud微服务技术。**大家看看内容即可,了解一下项目的基础结构,不用动手操作,可以直接从构建好的基础源码上开始下一章的学习。从下一章开始才真正的讲解微服务技术。 ## 一、新建dongbb-cloud父项目 创建一个基于maven的父项目 ![](https://img.kancloud.cn/d2/99/d2990c0ef4466f6af372ed4daec96ed6_1090x715.png) 填写maven项目坐标 ![](https://img.kancloud.cn/f3/e8/f3e890ce47c31589a1d07c67f77f2587_1078x689.png) 填写项目名称及路径信息 ![](https://img.kancloud.cn/98/3d/983d2fdaf8888d4c39e42cad44cc0017_1081x687.png) 由于父项目dongbb-cloud不承担任何的业务代码逻辑,只做子模块的管理。所以创建好之后,可以将src目录删掉。并在pom.xml中将packaging配置为pom。 ~~~ <packaging>pom</packaging> ~~~ 加入一些基础的属性配置 ~~~ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> ~~~ 在pom中加入dependencyManagement的代码段。dependencyManagement并不会真的引入依赖包。dependencyManagement会帮助我们做版本管理。如果我们的子项目在引入依赖时,不指定版本号,会从父项目的dependencyManagement管理中查找版本号。 这样做的好处是:**统一管理项目的类库版本,避免子模块之间的类库版本不同,导致的冲突及兼容性问题**。 ~~~ <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.5.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> ~~~ ## 二、构建第一个Spring Boot服务子模块 在前面的章节,我们已经说过要进行微服务的拆分。其中需要新增一个服务是service-sms。用于发送短信、邮件等的微服务,是新增的服务 父项目目录右键->New->Module,使用Spring Assistant创建Spring Boot项目 ![](https://img.kancloud.cn/89/2c/892cb13b020ebd9664411eed8addec93_719x491.png) 我们创建的第一个子模块是aservice-sms。 微服务作为我们整个项目的一等公民,在名称前面加个a,有利于后续多子模块的排序。 ![](https://img.kancloud.cn/0b/c5/0bc59aa06a0bb4ef09ce36f378c14371_1089x712.png) 选择2个基本的依赖包 ![](https://img.kancloud.cn/a7/a4/a7a46dd433e826ff2d3e3158aacb853e_1087x710.png) * 依赖Spring Web实现JSON数据接口 * lombok是一个编译器的基于注解的工具类库,可以帮助我们节省许多代码 在pom.xml中将spring boot子模块的父项目改为dongbb-cloud,如果IDEA帮我们完成了,这不就不用做了。 ~~~ <parent> <groupId>com.zimug</groupId> <artifactId>dongbb-cloud</artifactId> <version>1.0</version> </parent> ~~~ aservice-sms子模块构建完成之后,再构建aservice-rbac模块。最终的项目骨架如下,下一节我们往每一个服务里面添内容。 ![](https://img.kancloud.cn/d8/81/d881bc2480f129b95841efd880d9b4f2_545x655.png) 因为我们在父项目中使用了dependencyManagement管理版本,所以子模块中的dependency是不写version版本号的。如下: ~~~ <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> ~~~ 为aservice-rbac(8401)和aservice-sms(8402)分别设置端口号和服务名称,如下: ~~~ server: port: 8401 spring: application: name: aservice-rbac ~~~