spring-cloud-alibaba项目搭建前期准备
项目部署的概念图
spring-cloud-alibaba简单介绍
springCloud是spring官方提供的针对微服务构建提供的一套标准。Spring Cloud Alibaba是属于springCloud标准的一种实现, 致力于提供微服务开发的一站式解决方案。
各种实现方案对比
父级pom依赖构建
由于每一个微服务都包含了很多子系统,为了让所有子系统都统一使用相同的依赖版本,避免不必要的问题,这里构建一个pom,作为所有项目的父项目。添加有注释,可以自行修改
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.sry1201</groupId>
<artifactId>spring-cloud-alibaba-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spring-cloud-alibaba-demo</name>
<description>演示spring cloud相关的使用的父项目</description>
<packaging>pom</packaging>
<modules>
.......
</modules>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!--相关依赖版本-->
<spring.cloud.alibaba.version>2021.0.4.0</spring.cloud.alibaba.version>
<spring.boot.version>2.6.11</spring.boot.version>
<spring.cloud.version>2021.0.4</spring.cloud.version>
<dubbo.version>3.1.1</dubbo.version>
</properties>
<!-- 存放子项目可能用到的依赖,子项目中根据需要单独引入,子项目中引入时不需要声明版本号 -->
<dependencyManagement>
<!--Spring Cloud alibaba的版本管理, 通过dependency完成继承-->
<dependencies>
<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>
<!--Spring Cloud的版本管理-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--SpringBoot的版本管理-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Apache Dubbo -->
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-bom</artifactId>
<version>${dubbo.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-bom</artifactId>
<version>5.8.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 添加后,所有子项目共同使用的依赖,子项目中不需要单独引入 -->
<dependencies>
<!--SpringBoot 测试的场景启动-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<!--当前版本已经默认使用的是junit-jupiter-engine 不用排除-->
<!-- <exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>-->
</dependency>
<!-- 热部署相关 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<!--javaBean 简化 作用于编译阶段-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.6.13</version>
<configuration>
<!-- <mainClass>cn.sry1201.demo.DemoApplication</mainClass>-->
<!--打包时排除lombok,lomnok只作用于编译阶段,这里是根据groupid进行排除 -->
<excludeGroupIds>org.projectlombok</excludeGroupIds>
<!-- 精准排除 -->
<!-- <excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>-->
<!--排除热部署jar包-->
<excludeDevtools>true</excludeDevtools>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<attach>false</attach>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
基础示例项目构建
用于后续项目搭建的模板
项目布局(建议,其实随意啦,一句项目而定,比如部分通用代码也可以放置到公共的项目中再引入,其次项目简单的话也不用把目录弄复杂)
src
├── common ‐‐ 用于存放通用代码
| ├── api ‐‐ 通用结果集封装类
| ├── config ‐‐ 通用配置类
| ├── domain ‐‐ 通用封装对象
| ├── exception ‐‐ 全局异常处理相关类
| └── service ‐‐ 通用业务类
| └── utils ‐‐ 通用工具类
├── config ‐‐ SpringBoot中的配置
├── modules ‐‐ 存放业务代码的基础包
|—— module
| ├── controller ‐‐ 该模块相关接口
| ├── dto ‐‐ 该模块数据传输封装对象
| ├── mapper ‐‐ 该模块相关Mapper接口
| ├── model ‐‐ 该模块相关实体类
| └── service ‐‐ 该模块相关业务处理类
demo
包含基础的访问示例
demo2
包含基础的访问示例,mq使用示例,日志示例,mybatis示例,等
关联信息
- 关联的主题:
- 上一篇:
- 下一篇:
- image: 20221021/1
- 转载自: