此时我们的第一个微服务工程就建立完成了,接下来就是配置啦。我们首先配置POM.xml文件。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- 在这里配置继承的父项目的poM --> <parent> <groupId>com.libin</groupId> <artifactId>mcroservice</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>cloud_api_commons</artifactId> <version>0.0.1-SNAPSHOT</version> <name>cloud_api_commons</name> <description>Demo project for Spring Boot</description> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> <optional>true</optional> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!-- 工具包--> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.1.0</version> </dependency> </dependencies> </project>
注意:这里我们引入了Hutool这个jar包,它是一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类更多相信信息可参考:
一个超神级框架——Hutool工具类应有尽有!
这是我们就可以在该服务中写的pojo类,我们这里以支付为例,所以我们先在数据中建议一张支付的表。sql语句如下
CREATE TABLE `payment` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID', `serial` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
我们为该表添加数据,sql语句如下: ```powershell insert into `payment`(`id`,`serial`) values (1,'百度'),(2,'alibaba'),(3,'京东'),(4,'小米');
IDEA 逆向工程生成实体类策略可参考:
建表和添加数据完成了,我们就新建对应的实体类。下图为项目结构图:
注意:payment表对应的实体类。这里使用了lombok
Payment实体类源码:
package com.libin.entity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; import java.io.Serializable; /** * (Payment)实体类 *网络通信 一定要实现序列化 * 使用lombok 没有配置的朋友要去百度查一下 jar我们导入了 需要在idea装一个插件就可以了 * @author libin * @since 2021-06-20 13:51:22 */ @Data @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true) public class Payment implements Serializable { private static final long serialVersionUID = 613241275635502144L; /** * ID */ private Long id; /** * 微服务 一个服务对应一个数据库,同一个信息可能存在不同的数据库 */ private String serial; }
为了数据传输的方便,也为了前后端分离项目,我们将返回的数据进行封装,封装成一个实体类。
package com.libin.entity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; /** * @author libin * @date 2021年06月20日 13:56 */ @Data @NoArgsConstructor @AllArgsConstructor @Accessors(chain = true) public class CommonResult<T> { /** * * @author libin * @date 2021/6/20 13:57 * *返回状态码 */ private Integer code; /** * * @author libin * @date 2021/6/20 13:57 * @返回是否调用成功 * */ private String message; /** * * @author libin * @date 2021/6/20 13:57 * 返回的数据 */ private T data; public CommonResult(Integer code, String message) { this(code, message, null); } }
我们实体类的服务主要存放实体类,也不写业务逻辑,我们也可以将src文件夹删除掉。此时我们就将总工程和提供实体类的微服务工程搭建成功了。因为实体类的服务工程需要其他的各个服务工程调用,所以要将实体类的服务进行打包放到公用的本地库中。
我们首先将该工程clean,确保当前工程的maven的配置是否成功。
出现如下界面说明当前工程的maven配置环境没有问题
那接下来我们就开始install打包放到本地库中。如下为成功界面:
D:\Java\jdk_11_windows_x64\bin\java.exe -Dmaven.multiModuleProjectDirectory=D:\project\SpringCloud\mcroservice -Xms256m -Xmx512m -Dfile.encoding=UTF-8 -DarchetypeCatalog=local -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.home=D:\Java\apache_maven_3_8_1 -Dclassworlds.conf=D:\Java\apache_maven_3_8_1\bin\m2.conf "-Dmaven.ext.class.path=D:\Java\IntelliJ_IDEA\IntelliJ IDEA 2021.1.2\plugins\maven\lib\maven-event-listener.jar" "-javaagent:D:\Java\IntelliJ_IDEA\IntelliJ IDEA 2021.1.2\lib\idea_rt.jar=3762:D:\Java\IntelliJ_IDEA\IntelliJ IDEA 2021.1.2\bin" -classpath D:\Java\apache_maven_3_8_1\boot\plexus-classworlds-2.6.0.jar;D:\Java\apache_maven_3_8_1\boot\plexus-classworlds.license org.codehaus.classworlds.Launcher -Didea.version=2021.1.2 -s D:\Java\apache_maven_3_8_1\conf\settings.xml -Dmaven.repo.local=D:\Java\MavenRepository install [INFO] Scanning for projects... [INFO] [INFO] --------------------< com.libin:cloud_api_commons >--------------------- [INFO] Building cloud_api_commons 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ cloud_api_commons --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 1 resource [INFO] Copying 0 resource [INFO] [INFO] --- maven-compiler-plugin:3.8.1:compile (default-compile) @ cloud_api_commons --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 2 source files to D:\project\SpringCloud\mcroservice\cloud_api_commons\target\classes [INFO] [INFO] --- maven-resources-plugin:3.1.0:testResources (default-testResources) @ cloud_api_commons --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory D:\project\SpringCloud\mcroservice\cloud_api_commons\src\test\resources [INFO] [INFO] --- maven-compiler-plugin:3.8.1:testCompile (default-testCompile) @ cloud_api_commons --- [INFO] Changes detected - recompiling the module! [INFO] [INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ cloud_api_commons --- [INFO] [INFO] --- maven-jar-plugin:3.1.2:jar (default-jar) @ cloud_api_commons --- [INFO] Building jar: D:\project\SpringCloud\mcroservice\cloud_api_commons\target\cloud_api_commons-0.0.1-SNAPSHOT.jar [INFO] [INFO] --- maven-install-plugin:2.5.2:install (default-install) @ cloud_api_commons --- [INFO] Installing D:\project\SpringCloud\mcroservice\cloud_api_commons\target\cloud_api_commons-0.0.1-SNAPSHOT.jar to D:\Java\MavenRepository\com\libin\cloud_api_commons\0.0.1-SNAPSHOT\cloud_api_commons-0.0.1-SNAPSHOT.jar [INFO] Installing D:\project\SpringCloud\mcroservice\cloud_api_commons\pom.xml to D:\Java\MavenRepository\com\libin\cloud_api_commons\0.0.1-SNAPSHOT\cloud_api_commons-0.0.1-SNAPSHOT.pom [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6.171 s [INFO] Finished at: 2021-06-20T14:17:06+08:00 [INFO] ------------------------------------------------------------------------ Process finished with exit code 0
这一篇就写到这里咯~
我们下一篇文章将要搭建生产者和消费者的微服务工程啦。
如果大家觉得还不错,点赞,收藏,分享,一键三连支持我一下~





