开发者学堂课程【微服务框架 Spring Cloud 快速入门:API公共模块和部门Entity步骤】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/614/detail/9340
API公共模块和部门Entity步骤
内容介绍
一、整体父工程和project的构建
二、公共子模块的构建步骤
一、整体父工程和 project 的构建
主要是定义 POM 文件,将后续各个子模块公用的 jar 包等统一提出来,类似一个抽象父类。
这里先留着疑问,注意以下代码:
</dependencies>
</dependency Management>
<project>
二、公共子模块的构建步骤
1、新建 microservice cloud-api
(1)详解:
前面是统一的前缀,是相当于抽象的父类,需要继承也不要选择Maven Project,应该选择 Other 当中的 Maven Module
(2)此时 api 其中的 microservice cloud 便是父工程,前缀名也是一样的,所在的逻辑示图是spring Cloud2018;
(3)下一页此时的包名一样,但需要注意到的是此处的Packaging 是 jar,jar 就是一个真正能干活的微服务,接下来只需等待完成构建,创建完成以后请回到父工程查看pom文件变化。
(5)pom 文件:
父工程下面有一个子 module,就像之前所说,父工程1下面挂着1·1api 公共模块
(6)之间聚合代码的设置:
<modules>
<module>microservice cloud-api</module>
</modules>
代码中多了一个<modules>
,构建的子模块,此时说明了 cloud包含了 api。
(7)创建的 Main 工程或者子模块,为了搞定工程配置和环境的构建,学过了约定>配置>编码;
①约定的 main 的工程结构包有四个:
src/main java
src/main/resources
src/test/ java
src/test/resources
②配置:
是说 main 想要火起来,需要先在 pom·xml 里面有压包。
如此继承之后会有四个工程标配包,继承之前是JRE System Library [JavaE-1.5]
,继承之后变成JRE System Library [JavaE-1.8]
。
2、修改pom
(1)代码设置:
<parent!--子类里面显示声明才能有明确的继承表现,无意外就是父类的默认版本否则自己定义-->
<group Id>com. at guigu .spring cloud</group Id>
<artifact Id>microservice cloud</ artifact Id>
<version>0.0.1-SNAPSHOT</version>
</parent>
此时的</parent>说明当前的工程叫 api,父类是 microservice cloud,一般定义工程会有DAY,由于已经继承了父类,代码中的<version>0.0.1-SNAPSHOT</version>
便是父类
(2)把代码中的父类和<当前 module 我自己叫什么名字>两个用java 多态的思想来代码设置:相当于 public class 配上 extends,上面的 microservice cloud 父类,父类有什么,便直接继承,或者代码中<artifact Id>lombok</artifact Id>
只是在定义,此时实现了父类和继承同时码在代码中。设置完成之后再回到父工程查看 pom 文件变化。
(3)pom 文件变化
<modules>
<module>microservice cloud-api</module></ modules>
最后的 api 也可以在父工程中看到
3、新建部门Entity且配合lombok使用
(1)新建文件夹 Dept·java
代码设置:
package com. at guigu. spring cloud. entities;
import java .io .Serializable;
import lombok. All Arg s Constructor;
import lombok. Data;
import lombok. No Arg s Constructor;
import lombok .experimental. Accessors;
@suppresswarnings ( "serial")
@AllArgsConstructor
@NoArgsConstructor
@Data
@Accessors(chain=true)
public class Dept implements Serializable // Dept(Entity) orm mysql.-Dept (table)
类表关系映射//必须序列化
private Long
dept no
;//主键
private String
d name;
//部门名称
private String
db source
;//来自那个数据库,因为微服务架构可以一个服务对应一个数据库,同一个信息被存储到不同数据库
(2)执行结果:
具体的 Entity,学过 orm mysql 以后,应该明白到部门的 Entity 是一个实体类,根据面向对象的编程,mysql数据库里,会有叫department 表,是一个真正完成类表的关系映射。
(3)如果要添加部门的代码设置:
public Dept(String d name)
{
super();
this .d name = d name;
}
public static void main(String[ ] arg s){
Dept dep t = new Dept();
dept. set Dept no(11L).set D name("RD").set Db source("DB01");
不要使用多次点击鼠标新建的方法,写出一堆代码,这样效率不高,也很容易出错,可以使用@AllArgsConstructor
、
@NoArgsConstructor
、
@Data
、
@Accessors(chain=true)
来减轻编码的负担。
4、mvn clean install后给其它模块引用,达到通用目的。也即需要用到部门实体的话,不用每个工程都定义一份,直接引用本模块即可。
(1)详解:
已经定义完成,如同架构 api 公共模块现在有 Dept java,后续要使用可直接引用;接下来打开文件夹,让工程重新在本地库生成最新的夹包,然后给其他模块引用,是说其他模块要引用的话。
(2)代码设置:
<group Id>com. at guigu. spring cloud</ group Id>
<artifact Id>microservice cloud-api</artifact Id>
<version>0.0.1-SNAPSHOT</version>
里面的夹包可以免费使用,有数据的存在,就不需要重新定义,达到代码精简,需要用到部门实体的话,不用每个工程都定义一份,直接引用本模块即可。