1、说明
1.1、关于多模块
此处的多模块,指的就是多个微服务组成一个项目,每一个微服务就可以看成一个模块(module),其实每一个微服务模块本身就是一个项目,只不过 Maven 和 Eclipse 不同, Maven 是不支持多项目(Project)的,所以在 Maven 里可以通过父子多模块的方式来实现多模块的统一管理。
1.2、关于 Demo 项目
假设要开发一个考试系统,项目名称叫: edu ,项目下面包含多个提供微服务的子模块,数据库采用 MySQL 。
1.3、本节目标
只实现多项目的框架搭建,在演示框架里只搭建两个模块:用户模块、题库模块。注意:由于只是演示开发流程,所以不会过分纠缠于真实的业务逻辑。
项目模块构成:
edu --- 父项目
microsvc --- 微服务项目集合
user --- 用户模块(用户子项目)
question --- 题库模块(题库子项目)
other --- 其他模块或模块集合(此演示里仅仅用来占位)
2、搭建父项目
Maven搭建父项目,一般常用的有两种方法。
1)建立一个空项目
2)建立一个纯 pom 项目
由于父项目主要是作为子模块的容器,并不需要太多的功能或配置,所以建议采用第一种模式:建立一个空项目。
项目名称 - edu
项目目录:E:\springcloud\edu
点击“Finish”完成空项目创建。
3、创建pom集合模块
创建两个pom集合模块,用来管理下级子项目。
3.1、创建 microsvc
注意利用主菜单里的 File -> New -> Module 菜单项来创建 1 级子模块
注:后面的子模块都是采用 SpringInitializr 来创建。
修改 microsvc 模块里的 pom.xml 文件,增加一行,设定包类型为 pom,也就是只管理子模块的依赖关系,并没有代码部分。
3.2、创建 other
同上步骤,创建 other 模块,假设也是 pom 类型
具体模块参数如下:
4、创建微服务模块
微服务模块建立在 microsvc pom 模块下,所以,需要在 microsvc 子模块上点击右键菜单,进行子模块创建操作。
4.1、创建 user 微服务模块
4.1.1、新建模块
新建模块,同样是采用 Spring Initializr 模式,注意,采用 Maven Project 类型,里面会包含 java 代码。
暂时不加入依赖,到时可根据需要增加
修改 user 模块的 pom.xml 文件,将默认生成的 parent 参数替换掉,将默认 parent 参数换成 microsvc 模块的信息。
将 user 模块的父模块设置为 microsvc 的主要目的,就是利用 microsvc 来管理 user 及其它后续子模块的依赖关系。
查看 user 模块和 microsvc模块的 pom 文件,可以看到依赖部分变成黄色的警示色,表示依赖重复了:
请将 user 模块的 pox 文件里的 dependencies 部分整个删除,就OK了。说明已经从父项目 microsvc 里继承了依赖关系了。
4.1.2、修改 user 模块的配置文件
4.1.3、修改 user 模块源码,支持 http 访问
在 com.tanbushi.edu.microsvc.user 下新建包 controller,用来存放控制器的代码
新建包:controller
在controller 包里创建控制器类:UserController
在 UserController.java 文件里写入如下代码:
package com.tanbushi.edu.microsvc.user.controller;
/**
* Created by Administrator on 2019/5/27.
*/
@RestController
public class UserController {
@RequestMapping(value="/hello")
public String hello(){
return "hello from UserController";
}
}
实际代码效果见下图:
缺少注解对应的依赖,需要补齐。
鼠标点击 @RestController 上,会弹出红色警示灯,并点击倒三角号,出现操作提示,点击第一条即可增加依赖
点击 @RequestMapping 出现下面提示
从下图可以看到成功 import
同时,检查 user 模块的 pom 文件,发现成功添加了 web 依赖,见下图
该依赖解决了 user 模块的 web 应用可以正常导入,但后续再新建的微服务模块还是需要导入 web 依赖,会比较麻烦。为了简化,可以将该依赖从 user 模块里删除,添加到 microsvc 的 pom 文件里,以后 microsvc 下的微服务模块就可以直接使用 web组件 了。修改后的 microsvc 的 pom 文件如下:
4.1.4、运行 user 微服务
出现下图界面,可以看到 8100 http 端口成功启动监听
4.1.5、浏览器访问测试
在浏览器里输入:http://127.0.0.1:8100/hello
访问成功!
4.2、创建 question 题库微服务模块
基本方法和 user 模块类似,快速列举如下,不做赘述
运行题库模块的启动函数 QuestionApplication 后,进行浏览器测试:
上一篇:Spring Cloud 零基础实战(三):注册中心 Eureka 的搭建
下一篇:Spring Cloud 零基础实战(五):访问 MySQL 数据库
所属文集:Spring Cloud 零基础实战