通俗易懂-----微服务SpringCloudAlibaba项目基本结构
目录对微服务结构的理解Consumer:服务消费者Provider:服务提供者搭建项目1. 创建父工程1.1.导入子类共用的依赖(字类不必导重复的依赖)1.2.导入SpringCloudAlibaba依赖(注意版本间对应)2.创建api子工程(存放 Provider 和 Consumer公用的实体类)2.1.建立包结构2.2.包结构说明2.3.定义各包中的类2.4.在父工程pom文件中添加api坐
目录
1.2.导入SpringCloudAlibaba依赖(注意版本间对应)
2.创建api子工程(存放 Provider 和 Consumer公用的实体类)
4.1.导入数据库相关依赖(mysql + mybatis)
最近学习了一下微服务,然后看了一些微服务项目结构,对微服务有大致的一些理解。
对微服务结构的理解
Consumer:服务消费者
1.处理前端请求
2.根据需求调用Provider提供的服务
3.与前端密切交互,不涉及业务操作
Provider:服务提供者
1.Controller层:给Consumer提供服务调用接口
2.Service层:包含所有业务逻辑,给Controller层提供业务操作
3.Dao层:从数据库获取数据并处理,给Service层提供数据(数据处理只能在dao层!!!Service层只获取数据)
搭建项目
1. 创建父工程
1.1.导入子类共用的依赖(字类不必导重复的依赖)
1.2.导入SpringCloudAlibaba依赖(注意版本间对应)
<!-- 导入Spring Cloud依赖 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Hoxton.SR8</version>
</dependency>
<!-- 导入Spring Cloud Alibaba依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
2.创建api子工程(存放 Provider 和 Consumer公用的实体类)
2.1.建立包结构
2.2.包结构说明
entity:持久层对象,一个对象对应数据库中某张表的一条记录;各属性与数据库表列对应
dto:根据需求定制,拷贝entity类中需要的属性(不一定是全部属性;可能有多个dto类对应一个entity类);用于网络传输所以需要实现序列化
vo:传给前端的对象,内部包含dto对象、返回信息、状态码;用于网络传输所以需要实现序列化
2.3.定义各包中的类
User类 对应数据库表(我是懒狗不想建新表,用以前的;表结构很乱请见谅)
UserInfDto类 代表只获取用户基本信息(只定义了部分属性)
ResponseVo类
(①一定要加set get方法,否则前端无法解析 ②一定要加无参构造方法,否则Consumer无法解析);
我是懒狗!!!懒得加状态码了,用boolean标识处理是否成功
2.4.在父工程pom文件中添加api坐标
3.创建Consumer子工程
3.1.导入discovery发现服务依赖
<!-- nacos发现服务 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
3.1.修改配置文件
改成yml后缀非必须,知识在添加配置时更清晰
3.2.创建包结构并编写类
controller
configuration(配置类)
RestTemplate 用于远程调用,用于Consumer调用Provider的服务
@LoadBalanced 该注解必须有,否则无法调用服务
4.创建Provider子工程
4.1.导入数据库相关依赖(mysql + mybatis)
4.2.导入nacos依赖(用于注册服务)
<!-- nacos发现服务 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
4.3.编写配置文件(添加数据库与nacos配置)
4.4.编写mybatis配置
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<!-- 全局映射器启用缓存 -->
<setting name="cacheEnabled" value="true"/>
<!-- 允许 JDBC 支持自动生成主键 -->
<setting name="useGeneratedKeys" value="true"/>
<!-- 配置默认的执行器 -->
<setting name="defaultExecutorType" value="REUSE"/>
<!-- 指定 MyBatis 所用日志的具体实现 -->
<setting name="logImpl" value="SLF4J"/>
</settings>
</configuration>
4.5.创建包结构并编写类
controller层
service层
dao层
添加了 mapper 包用于从数据库获取数据
配置文件中各种全类名一定要写对,否则报错了都不知道错在哪
而 repository 进行数据处理操作
数据处理只能在这里哦,绝对不能放进service层
5.注册服务
5.1.启动nacos
5.2.启动Provider
注意此时还没有consumer
6.服务调用
6.1.启动Consumer
6.2.调用服务
更多推荐
所有评论(0)