SpringCloud--从零开始搭建微服务基础环境入门教程【一】

😀前言

本篇博文是关于SpringCloud--从零开始搭建微服务基础环境入门教程【一】,希望你能够喜欢😉

🏠个人主页:晨犀主页

🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉

💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰

如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦😊

文章目录

微服务基础环境搭建【一】

创建父工程,用于聚合其它微服务模块

实现步骤

创建父项目, 作为聚合其它微服务模块

1、说明:我们先创建一个父项目, 该父项目会去管理多个微服务模块(module), 如图:

2、创建父项目步骤-- 灵活配置方式

项目设置

删除src, 保留一个纯净环境

配置父工程pom.xml, 作为聚合其它模块

1、修改D:\nlc_springcloud_temp\e-commerce-center\pom.xml, 配置各个依赖版本...

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>com.nlc.springcloud</groupId>
    <artifactId>e-commerce-center</artifactId>
    <version>1.0-SNAPSHOT</version>
   
    <!-- 表明是一个父工程,聚合管理其他模块 -->
    <packaging>pom</packaging>

    <name>e-commerce-center</name>

    <!--提醒: 版本尽量和下面保持一致: 否则容易出现版本兼容问题, 先跟着走通一套配置-->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <junit.version>4.12</junit.version>
        <!--
           说明: 使用最新版本的log4j , 防止安全漏洞
        -->
        <log4j.version>2.17.2</log4j.version>
        <lombok.version>1.18.20</lombok.version>
        <mysql.version>5.1.47</mysql.version>
        <druid.version>1.1.17</druid.version>
        <mybatis.spring.boot.version>2.2.0</mybatis.spring.boot.version>
    </properties>

    <!--说明: dependencyManagement 配置各个依赖和版本: 后面如果有需要,还要增加-->
    <dependencyManagement>
        <dependencies>
            <!--配置spring-boot-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.2.2.RELEASE</version>
                <!--
                    解读:
                    1. type: pom  和 scope import 配合使用
                    2. 表示 父项目的子模块, 在引入springboot相关依赖时 锁定版本为2.2.2.RELEASE
                    3. 通过 pom + import 解决maven单继承机制
                 -->
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--配置spring-cloud-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--配置cloud-alibaba-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.1.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!--配置mysql-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
            </dependency>

            <!--配置druid数据源-->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>${druid.version}</version>
            </dependency>

            <!--配置springboot整合mybatis starter-->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>${mybatis.spring.boot.version}</version>
            </dependency>

            <!--配置log4j ,使用的最新高版本-->
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>

            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>

            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

2、修改D:\my_springcloud_temp\e-commerce-center\pom.xml,删除不需要的配置节点

xml 复制代码
<!--删除build 和reporting 节点-->
<build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
        <plugins>
            <plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <version>3.1.0</version>
            </plugin>
            <plugin>
                <artifactId>maven-site-plugin</artifactId>
                <version>3.7.1</version>
            </plugin>
            <plugin>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>3.0.0</version>
            </plugin>
        </plugins>
    </pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <configuration>
            	<locales>en,fr</locales>
            </configuration>
        </plugin>
    </plugins>
</build>
 	<reporting>
        <plugins>
            <plugin>
            	<artifactId>maven-project-info-reports-plugin</artifactId>
            </plugin>
        </plugins>
	</reporting>   

注意事项和细节

Maven 的dependencyManagement 说明

1、Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。通常在项目packaging 为POM, 中使用dependencvManadement 元素。

2、使用pom.xml 中的dependencyManagement 元素能让所有在子项目中引用一个依赖, Maven 会沿着父子层次向上走, 直到找到一个拥有dependencyManagement 元素的项目, 然后它就会使用这个dependencyManagement 元素中指定的版本号。

3、好处∶如果有多个子项目都引用同一样依赖,则可以避免在每个使用的子项目里都声明一个版本号,当升级或切换到另一个版本时,只需要在顶层父容器

里更新,而不需要分别在子项目的修改;另外如果某个子项目需要另外的一个版本,只需要声明version 就可。

4、dependencyManagement 里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。

5、如果不在子项目中声明依赖,是不会从父项目中继承下来的; 只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version 和scope 都读取自父pom。

作用范围一览图

6、如果子项目中指定了版本号,那么会使用子项目中指定的jar 版本。

😁热门专栏推荐
Thymeleaf快速入门及其注意事项

Spring Initailizr--快速入门--SpringBoot的选择

带你了解SpringBoot支持的复杂参数--自定义对象参数-自动封装

Rest 优雅的url请求处理风格及注意事项

文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁

希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻

如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞

相关推荐
壹米饭1 分钟前
Java程序员学Python学习笔记一:学习python的动机与思考
java·后端·python
java金融3 分钟前
Java 锁升级机制详解
java
Young55667 分钟前
还不了解工作流吗(基础篇)?
java·workflow·工作流引擎
让我上个超影吧8 分钟前
黑马点评【缓存】
java·redis·缓存
ajassi200016 分钟前
开源 java android app 开发(十一)调试、发布
android·java·linux·开源
YuTaoShao30 分钟前
Java八股文——MySQL「存储引擎篇」
java·开发语言·mysql
crud36 分钟前
Java 中的 synchronized 与 Lock:深度对比、使用场景及高级用法
java
王德博客41 分钟前
【Java课堂笔记】Java 入门基础语法与面向对象三大特性详解
java·开发语言
seventeennnnn1 小时前
Java大厂面试真题:谢飞机的技术挑战
java·spring boot·面试·aigc·技术挑战·电商场景·内容社区
wkj0011 小时前
接口实现类向上转型和向上转型解析
java·开发语言·c#