通俗易懂-----微服务SpringCloudAlibaba项目基本结构

目录

对微服务结构的理解

Consumer:服务消费者

Provider:服务提供者

搭建项目

1. 创建父工程

1.1.导入子类共用的依赖(字类不必导重复的依赖)

1.2.导入SpringCloudAlibaba依赖(注意版本间对应)

2.创建api子工程(存放 Provider 和 Consumer公用的实体类)

2.1.建立包结构

2.2.包结构说明

2.3.定义各包中的类

2.4.在父工程pom文件中添加api坐标

3.创建Consumer子工程

3.1.导入discovery发现服务依赖

3.1.修改配置文件

3.2.创建包结构并编写类

4.创建Provider子工程

4.1.导入数据库相关依赖(mysql + mybatis)

4.2.导入nacos依赖(用于注册服务)

4.3.编写配置文件(添加数据库与nacos配置)

4.4.编写mybatis配置

4.5.创建包结构并编写类

5.注册服务

5.1.启动nacos

5.2.启动Provider

6.服务调用

6.1.启动Consumer

6.2.调用服务



最近学习了一下微服务,然后看了一些微服务项目结构,对微服务有大致的一些理解。

对微服务结构的理解

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第1张图片

Consumer:服务消费者

1.处理前端请求

2.根据需求调用Provider提供的服务

3.与前端密切交互,不涉及业务操作

Provider:服务提供者

1.Controller层:给Consumer提供服务调用接口

2.Service层:包含所有业务逻辑,给Controller层提供业务操作

3.Dao层:从数据库获取数据并处理,给Service层提供数据(数据处理只能在dao层!!!Service层只获取数据

 

搭建项目

1. 创建父工程

1.1.导入子类共用的依赖(字类不必导重复的依赖)

1.2.导入SpringCloudAlibaba依赖(注意版本间对应


            
                org.springframework.cloud
                spring-cloud-dependencies
                Hoxton.SR8
            
            
            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                2.2.1.RELEASE
            

2.创建api子工程(存放 Provider 和 Consumer公用的实体类)

2.1.建立包结构

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第2张图片

2.2.包结构说明

entity:持久层对象,一个对象对应数据库中某张表的一条记录;各属性与数据库表列对应

dto:根据需求定制,拷贝entity类中需要的属性(不一定是全部属性;可能有多个dto类对应一个entity类);用于网络传输所以需要实现序列化

vo:传给前端的对象,内部包含dto对象、返回信息、状态码;用于网络传输所以需要实现序列化

2.3.定义各包中的类

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第3张图片

User类 对应数据库表(我是懒狗不想建新表,用以前的;表结构很乱请见谅)

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第4张图片通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第5张图片

UserInfDto类 代表只获取用户基本信息(只定义了部分属性)

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第6张图片

ResponseVo类

(①一定要加set get方法,否则前端无法解析 一定要加无参构造方法,否则Consumer无法解析);

我是懒狗!!!懒得加状态码了,用boolean标识处理是否成功

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第7张图片

2.4.在父工程pom文件中添加api坐标

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第8张图片

3.创建Consumer子工程

3.1.导入discovery发现服务依赖


        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            2.2.5.RELEASE
        

3.1.修改配置文件

改成yml后缀非必须,知识在添加配置时更清晰

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第9张图片

3.2.创建包结构并编写类

controller

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第10张图片

 

configuration(配置类)

RestTemplate 用于远程调用,用于Consumer调用Provider的服务
@LoadBalanced 该注解必须有,否则无法调用服务

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第11张图片

4.创建Provider子工程

4.1.导入数据库相关依赖(mysql + mybatis)

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第12张图片

4.2.导入nacos依赖(用于注册服务)


        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
            2.2.1.RELEASE
        

4.3.编写配置文件(添加数据库与nacos配置)

4.4.编写mybatis配置





    
        
        
        
        
        
        
        
        
    


4.5.创建包结构并编写类

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第13张图片

controller层

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第14张图片

service层

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第15张图片

dao层

添加了 mapper 包用于从数据库获取数据

配置文件中各种全类名一定要写对,否则报错了都不知道错在哪

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第16张图片

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第17张图片

而 repository 进行数据处理操作

数据处理只能在这里哦,绝对不能放进service层

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第18张图片

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第19张图片

5.注册服务

5.1.启动nacos

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第20张图片

5.2.启动Provider

注意此时还没有consumer

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第21张图片

6.服务调用

6.1.启动Consumer

通俗易懂-----微服务SpringCloudAlibaba项目基本结构_第22张图片

6.2.调用服务

 

 

你可能感兴趣的:(微服务,微服务,spring,cloud,alibaba)