开发者学堂课程【全面讲解开源数据库中间件 MyCat 使用及原理(四):MyCat - 环境搭建 - 基础工程搭建】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/758/detail/13309
MyCat - 环境搭建 - 基础工程搭建
内容介绍:
一、搭建案例环境
二、搭建基础工程
一、搭建案例环境
1、先搭建父工程
工程名: v_parent
通过父工程,进行统一管理依赖的版本。
2、其次搭建案例环境
(1):首先创建一个空 project。
Project name: v_shop_project
(2):其次在工程 project 中创建一个新Module,之后选择 Maven
Groupld: cn.itcast
Artifactid: v_parent
(3):点击 next
(4):最后点击 Finsh
第一个父工程就创建好了,父工程的功能就是统一管理依赖的版本,所以同时删除左侧屏幕显示的 src 目录。
3、在 pom.xml引入依赖
<!-- spring Boot 项目需要集成自父工程-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
</parent>
//这个指定 v_parent 的父是 spring-boot-starter-parent
<properties>
skipTests>true</skipTests>
</properties>
//这个指定构建项目时要跳过单元测试。
<!--依赖包-->
<dependencies>
<!--测试包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependencies>
//引入一个测试依赖: spring-boot-starter-test
(因为所有工程当中都需要测试依赖)
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.SRI</version>
<type>pom</type>
<scope>import</scope>
</dependency>
//通过 <dependencyManagement>
指定依赖版本
//首先第一个依赖版本是 spring-cloud-dependencies 相关依赖,使用 Greenwich.SR1 这个版本的依赖。
<!--MySQL 数据库驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
</dependency>
// MySQL 数据库驱动依赖
<!--mybatis 分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
// mybatis 分页插件的依赖
<!--json 格式转换-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
</dependency>
// json 格式转换的依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.6</version>
</dependency>
</dependencies>
</dependencyManagement>
</project>
// lombok 依赖
以上就是导入的依赖,通过父工程进行统一的依赖管理。
二、搭建基础工程
1、搭建 v_model
(1)新建一个 Module
Artifactld: v_model
Module.name: v_model
该基础工程存放的是与数据库对应的实体类。
在创建成功的 v_model ,只需要在 v_model 导入一项依赖。导入 lombok 依赖,不需要指定版本。(因为 v_parent 父工程中已经指定版本号,<Version>1.18.6</Version>)
(2)导入 model 实体到目录:
在 v_model 下的 java 创建一个 Newpackage, 创建成功之后,把案例资料里的 model 实体类导入进目录。直接拷贝到 model 的这个文件下的路径(如下所示):
(3)再新建一个 newpackage
这个实体类并不是与数据库对应的,这是一个组合实体类。
下面对 model 里面的 TbAreas 文件做简单说明:
在实体类声明的时候用到了两个注解, 分别是 Data、NoArgsConstrctor,这两个注释都是通过 lombok 启动的,其中 Data 可以简化 POJO 中关于 setter、Getter、ToString、、、、的编写,如果没有 Data 注解,需要在文件里进行补充setter、Getter、ToString、、、、。然而 NoArgsConstrctor 可以进行无参数构造,但可以省略不写,原因在于这个实体类默认只有一个无参构造。在其它的实体类,也是这两个注解,这样 v_model 实体模型创建完成。
2、搭建通用组件工程 v_common
(1)新建一个 Module
Artifactld: v_common
Module.name: v_common
该基础工程中存放的是通用的组件及工具类,比如分页实体类,结果实体类,状态码等。
(2)新建一个目录
(3)新建一个 New Package
(4)最后再新建一个目录
其中目录里的 entity 文件存放通用组件, util 文件存放工具。
(5)导入 common 组件到目录:
把案例资料里的 common 组件下的 entity 里的通用组件拷贝到目录中的 entity 下,以及 util 里的通用工具类拷贝到目录中的 util 下。
简单了解 entity 里的组件,包括:
Page: 分页组件
PageResult: 分页结果返回的对象
Result: 增删改查返回的一个结果。(包括当前操作是否成功,以及返回码、返回消息。返回数据的内容)
StatusCode: 封装的返回状态码。(状态码不足可以适当补充)
以上就是 v_common 组件通用工程所存储的组件,当要进行具体使用,再进行具体说明。
3、搭建 v_feign_api
(1)新建一个 Module
Artifactld: v_feign_api
Module.name: v_feign_api
该基础工程中主要存放的是 Feign 与远程调用的客户端接口。
(2)引入对应依赖
这个工程需要引入对应的依赖。
<dependencies>
<!--web 起步依赖-->
<dependency>
<groupId>org.springframenwork.boot</groupId>
<artifactId>spring-boot-starter-openfeign</artifactId>
</dependency>
<!--Feign 起步依赖-->
<dependency>
<groupId>org.springframework.cloud.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>cn.itcast</groupId>
<artifactId>v_common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.itcast</groupId>
<artifactId>v_model</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
//首先 spring-boot-starter-web 用于封装一些注解
//其次 spring-cloud-starter-openfeign 是使用 openfeign 中的注解
//再其次 当工程可能需要一些通用组件,依赖 v_common
//最后包括实体模型依赖 v_model
以上就是搭建基础工程的全部内容,主要搭建 v_common (存放通用组件) 、v_model (存放与数据库对应的实体模型)、v_feign_api ( c 存放远程调用的客户端)。