前言
为了方便开发调试,这里使用Maven聚合的方式进行项目的创建,父项目来管理所有子Module的依赖版本信息,以防止出现因各个项目的依赖版本不一致导致的各种莫名其妙的问题。
主要依赖版本:
-
JDK:
1.8
-
SpringBoot:
2.2.10.RELEASE
-
SpringCloud:
Hoxton.SR8
-
SpringCloudAlibaba:
2.2.3.RELEASE
一、新建项目
-
打开IDEA 新建Maven项目
-
在刚建好的项目内新建子Module
后面步骤和新建项目基本一致。
-
项目Maven配置
最外层的
pom.xml
为总的父Pom文件,这里负责管理所有子项目的依赖版本,打包方式为pom
。父
pom.xml
内容:<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.feasy.cloud</groupId> <artifactId>feasy-cloud-new1</artifactId> <packaging>pom</packaging> <version>1.0</version> <description> 父项目,依赖统一管理 </description> <modules> <!-- 负责封装微服务所有服务入口,服务启动类及配置信息 --> <module>feasy-cloud-application</module> <!-- 封装微服务内通用工具包 --> <module>feasy-cloud-common</module> <!-- 所有微服务的实体依赖封装 --> <module>feasy-cloud-domain</module> <!-- 所有微服务的服务调用依赖封装 --> <module>feasy-cloud-client</module> </modules> <properties> <!--项目编译环境--> <java.version>1.8</java.version> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.encoding>UTF-8</maven.compiler.encoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <!--依赖版本管理--> <fastjson.version>1.2.73</fastjson.version> <commons-lang3.version>3.11</commons-lang3.version> <spring-boot.version>2.2.10.RELEASE</spring-boot.version> <spring-cloud.version>Hoxton.SR8</spring-cloud.version> <spring-cloud-alibaba.version>2.2.3.RELEASE</spring-cloud-alibaba.version> <mysql-connector.version>8.0.16</mysql-connector.version> <druid-spring-boot-starter.version>1.2.4</druid-spring-boot-starter.version> <mybatis-plus-boot-starter.version>3.4.1</mybatis-plus-boot-starter.version> </properties> <!-- 只做声明版本,并没有实际引用依赖 --> <dependencyManagement> <dependencies> <!-- SpringBoot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- SpringCloud --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- SpringCloud Alibaba --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring-cloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- MySQL数据库连接驱动 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql-connector.version}</version> </dependency> <!-- MybatisPlus Mybatis增强插件SpringBoot整合 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus-boot-starter.version}</version> </dependency> <!-- Druid阿里数据库连接池 --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>${druid-spring-boot-starter.version}</version> </dependency> <!-- 阿里FastJson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version> </dependency> <!-- Apache的处理基本数据类型数据的工具包 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>${commons-lang3.version}</version> </dependency> </dependencies> </dependencyManagement> </project>
feasy-cloud-application.pom.xml
内容:<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>feasy-cloud-new1</artifactId> <groupId>org.feasy.cloud</groupId> <version>1.0</version> </parent> <modelVersion>4.0.0</modelVersion> <packaging>pom</packaging> <artifactId>feasy-cloud-application</artifactId> <description>微服务服务入口父Module</description> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter</artifactId> </dependency> <!-- Nacos 服务注册中心依赖 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- Nacos 服务配置中心依赖 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> </dependencies> </project>
feasy-cloud-client.pom.xml
内容:<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>feasy-cloud-new1</artifactId> <groupId>org.feasy.cloud</groupId> <version>1.0</version> </parent> <modelVersion>4.0.0</modelVersion> <packaging>pom</packaging> <artifactId>feasy-cloud-client</artifactId> <description>微服务客户端封装父Module</description> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> </dependencies> </project>
feasy-cloud-common.pom.xml
内容:<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>feasy-cloud-new1</artifactId> <groupId>org.feasy.cloud</groupId> <version>1.0</version> </parent> <modelVersion>4.0.0</modelVersion> <packaging>pom</packaging> <artifactId>feasy-cloud-common</artifactId> <description>工具包封装父Module</description> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> </project>
feasy-cloud-domain.pom.xml
内容<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>feasy-cloud-new1</artifactId> <groupId>org.feasy.cloud</groupId> <version>1.0</version> </parent> <modelVersion>4.0.0</modelVersion> <packaging>pom</packaging> <artifactId>feasy-cloud-domain</artifactId> <description>微服务实体依赖封装父Module</description> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> </project>
二、项目基本配置
-
新建auth微服务服务
在feasy-cloud-domain、feasy-cloud-client、feasy-cloud-application分别建立feasy-auth-domain、feasy-auth-client、feasy-auth-application等子Module。建立方法和上面的建立子Module方式一致
注意:在创建子Module时需要确认在下面选择的父项目是否正确
-
编辑
feasy-auth-application
的pom文件,添加SpringBoot Web依赖<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <parent> <artifactId>feasy-cloud-application</artifactId> <groupId>org.feasy.cloud</groupId> <version>1.0</version> </parent> <modelVersion>4.0.0</modelVersion> <packaging>jar</packaging> <artifactId>feasy-auth-application</artifactId> <description>授权认证中心微服务启动模块</description> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project>
-
编辑微服务配置
-
创建微服务启动类
AuthApplication.java
package org.feasy.cloud.auth; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; /** * 授权认证中心启动类 * * @author YangXiaohui * @since 2020/12/22 11:52 */ @EnableDiscoveryClient @SpringBootApplication(scanBasePackages = "org.feasy.cloud.**") public class AuthApplication { public static void main(String[] args) { SpringApplication.run(AuthApplication.class, args); } }
-
配置微服务相关配置
bootstrap.yml
server: port: 8080 spring: profiles: active: dev application: name: auth cloud: nacos: server-addr: 127.0.0.1:8848 discovery: group: FeasyApplication namespace: ${spring.profiles.active} log-name: ${spring.application.name} cluster-name: ${spring.application.name}-${spring.profiles.active}
-
三、验证注册中心
-
启动微服务
-
验证注册中心信息