# 新建一个模块工程
经过前两章的学习,我们了解了HOS基础平台的微服务版的工程结构和运行环境,在本章节你将学习到如何创建一个新工程、如何开发简单的CRUD以及一些复杂操作。那么下面我们就开始正式学习项目从0到1的开发过程吧!
开发人员需要在HOS基础平台的后端微服务工程上新建模块,如果你手中没有HOS基础平台的后端相关代码,请从下载工程章节下载工程。后端工程代码中和本文档中提到的hos
仅作为业务示例,开发人员在创建相关目录或文件时可以修改成其它名称,比如his
、hrp
、oa
等,请根据自己实际业务进行修改。
在微服务版的工程结构中,我们使用最多的模块是hos-business-parent
下的3个子模块:
hos-api
里面主要存放的是业务实体及供其它服务调用的feignClient
hos-service
里面主要存放的是业务controller
、service
、serviceImpl
、mapper
及mapper.xml
, 并且在配置文件中配置相关信息hos-business-common
里面主要存放的是业务公共部分,如枚举、异常、常量等等
下面我们就开始进行第一步操作:子模块的新建
# 新建子模块(以用户模块为例)
1.新建用户服务,在hos-service
上右击依次选择 New
-> Module
2.在New Module
界面选中左侧的Maven
并且点击Next
3.选择Parent
为hos-service
,给模块Name
和ArtifactId
命名,推荐他们两个命名保持一致,这里使用了hos-user-service
(大家可以根据实际的业务模块命名)
4.点击Finish
等待maven
工程加载完毕
5.在hos-user-service
工程内分别创建包com.mediway.hos.user.controller
、com.mediway.hos.user.mapper
、com.mediway.hos.user.service
、resources/mapper
,创建过程可参考单体版内容。
6.我们以同样的方式在hos-api
下新建hos-user-api
工程
7.在hos-user-api
工程内分别创建包com.mediway.hos.user.feign
、com.mediway.hos.user.model.entity
、com.mediway.hos.user.model.vo
、com.mediway.hos.user.model.dto
,创建过程可参考单体版内容。
# 工程版本依赖设置
1.打开hos-user-api
工程下的pom.xml
设置基本信息,加上红框内的信息
2.打开hos-user-service
工程下的pom.xml
设置基本信息,加上红框内的信息
以下依赖为刚刚新建的hos-user-api
工程,代码组成主要是entity
、vo
、dto
、feign
等模块
<dependency>
<groupId>com.mediway.hos</groupId>
<artifactId>hos-user-api</artifactId>
</dependency>
3.打开hos-business-parent
工程下的pom.xml
的dependencyManagement
标签下设置对hos-user-api
的版本管理,加上红框内的信息
<dependency>
<groupId>com.mediway.hos</groupId>
<artifactId>hos-user-api</artifactId>
<version>${project.version}</version>
</dependency>
# 工程配置
1.拷贝示例hos-contract-service
工程的ContractApplication
至hos-user-service
工程的com.mediway
目录下,并且修改类名为UserApplication
点击OK
,修改UserApplication
中代码如下
2.拷贝hos-contract-service
工程的配置文件至hos-user-service
工程的resources
下
3.修改下bootstrap.yml
里的spring.application.name
的值为hos-user-service
spring:
application:
name: hos-user-service
4.修改下bootstrap-dev.yml
下server.port
的值为8003
(可以定义为其他端口,但必须不冲突);可根据自己实际情况修改nacos的spring.cloud.nacos.config
与spring.cloud.nacos.discovery
的值,示例中配置如下所示:
spring:
cloud:
nacos:
config:
file-extension: yml
prefix: hos-user
group: hos
server-addr: ${ENV_NACOS_ADDERSS:192.16.18.196:10011}
namespace: ${ENV_DIS_NAMESPACE:demo}
discovery:
group: hos
server-addr: ${ENV_NACOS_ADDERSS:192.16.18.196:10011}
namespace: ${ENV_DIS_NAMESPACE:demo}
server:
port: 8003
5.我们先启动hos-user-service
服务,访问 http://192.16.18.196:10011/nacos
(url根据自己实际地址修改)查看效果
我们可以看到hos-user-service
已经在注册列表中,说明一个新的微服务已经诞生!
6.修改nacos
上的网关配置gateway.yml
,添加users
服务的路由配置
修改成如下配置
spring:
cloud:
gateway:
enabled: true
discovery:
locator:
enabled: true #开启从注册中心动态创建路由的功能,利用微服务名路由
lower-case-service-id: true #将请求路径上的服务名配置为小写
# 路由
routes:
# 路由标识(id:标识,具有唯一性)
- id: hos-user-service
# 目标服务地址(uri:地址,请求转发后的地址)
uri: lb://hos-user-service
# 路由条件(predicates:断言,匹配 HTTP 请求内容)
predicates:
## 转发地址格式为 uri/archive
- Path=/user/**
filters:
- StripPrefix=1
6.我们启动hos-managecenter
模块下的managecenter-gateway
服务,访问 http://192.16.18.196:10011/nacos
查看效果
我们可以发现网关服务也已经成功注册!