Spring Cloud 零基础实战(四):最简单的多模块应用框架搭建

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 级子模块


通过主菜单 File -> New -> Module 建立 1 级子模块

使用 SpringInitializr 创建子模块

注:后面的子模块都是采用 SpringInitializr 来创建。


新建模块 - microsvc

配置模块名及路径

修改 microsvc 模块里的 pom.xml 文件,增加一行,设定包类型为 pom,也就是只管理子模块的依赖关系,并没有代码部分。
添加包类型:类型为 pom

3.2、创建 other

同上步骤,创建 other 模块,假设也是 pom 类型
具体模块参数如下:


other 子模块配置 1

other 子模块配置 2

other 子模块配置 3

4、创建微服务模块

微服务模块建立在 microsvc pom 模块下,所以,需要在 microsvc 子模块上点击右键菜单,进行子模块创建操作。


在 microsvc 子模块下创建 微服务模块

4.1、创建 user 微服务模块

4.1.1、新建模块

新建模块,同样是采用 Spring Initializr 模式,注意,采用 Maven Project 类型,里面会包含 java 代码。


user 子模块参数

暂时不加入依赖,到时可根据需要增加


先不添加依赖

user模块参数

修改 user 模块的 pom.xml 文件,将默认生成的 parent 参数替换掉,将默认 parent 参数换成 microsvc 模块的信息。
将 user 模块的 parent 换成 microsvc 模块的信息

将 user 模块的父模块设置为 microsvc 的主要目的,就是利用 microsvc 来管理 user 及其它后续子模块的依赖关系。
查看 user 模块和 microsvc模块的 pom 文件,可以看到依赖部分变成黄色的警示色,表示依赖重复了:


重复的依赖

请将 user 模块的 pox 文件里的 dependencies 部分整个删除,就OK了。说明已经从父项目 microsvc 里继承了依赖关系了。

4.1.2、修改 user 模块的配置文件

将 user 微服务服务端口设置为:8100

4.1.3、修改 user 模块源码,支持 http 访问

在 com.tanbushi.edu.microsvc.user 下新建包 controller,用来存放控制器的代码


新建包

新建包: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 上,会弹出红色警示灯,并点击倒三角号,出现操作提示,点击第一条即可增加依赖


发现并添加依赖,并完成 import

点击 @RequestMapping 出现下面提示
注解错误, Alt+Enter 自动完 import

从下图可以看到成功 import


成功 import

同时,检查 user 模块的 pom 文件,发现成功添加了 web 依赖,见下图
user 模块增加了 web 依赖

该依赖解决了 user 模块的 web 应用可以正常导入,但后续再新建的微服务模块还是需要导入 web 依赖,会比较麻烦。为了简化,可以将该依赖从 user 模块里删除,添加到 microsvc 的 pom 文件里,以后 microsvc 下的微服务模块就可以直接使用 web组件 了。修改后的 microsvc 的 pom 文件如下:
微服务集合模块 microsvc 里添加 web 依赖,以供后续子模块继承

4.1.4、运行 user 微服务

运行 user 微服务

出现下图界面,可以看到 8100 http 端口成功启动监听


user 微服务启动 8100 端口

4.1.5、浏览器访问测试

在浏览器里输入:http://127.0.0.1:8100/hello

image.png

访问成功!

4.2、创建 question 题库微服务模块

基本方法和 user 模块类似,快速列举如下,不做赘述


新建 question 微服务模块

模块设置

修改 parent

设置题库微服务端口为 8200

QuestionController.java 演示代码

运行题库模块的启动函数 QuestionApplication 后,进行浏览器测试:


题库微服务测试运行成功

上一篇:Spring Cloud 零基础实战(三):注册中心 Eureka 的搭建
下一篇:Spring Cloud 零基础实战(五):访问 MySQL 数据库
所属文集:Spring Cloud 零基础实战


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,830评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,992评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,875评论 0 331
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,837评论 1 271
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,734评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,091评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,550评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,217评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,368评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,298评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,350评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,027评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,623评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,706评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,940评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,349评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,936评论 2 341

推荐阅读更多精彩内容