SpringCloud第三章 微服务架构编码构建

SpringCloud第三章 微服务架构编码构建

约定 > 配置 > 编码

1、IDEA新建project工作空间

  • 新建Empty Project,类似工作空间

  • 新project设置

    project都选择8

    module点击+号,新建一个maven模块

  • 新Module的设置

    由于第一个是pom统一工程,不选择模板create from archetype

  • G:com.likun.springcloud

A:microservicecloud

V:1.0-SNAPSHOT

  • Language Level 选择 8

  • 新project设置

    • Editor | File Encodings 设置为UTF8
    • Build, Execution, Deployment | Compiler | Annotation Processors 每个module都打勾
    • File | Settings | Build, Execution, Deployment | Compiler | Java Compiler 设置为1.8
  • microservicecloud该模块下鼠标右键新建其下的子module

    • 新建子module microservicecloud-api 可以不勾选create from archetype
    • IDEA工具右边的maven projects视图刷新,出现新的子模块
    • 右上角设置,选择Group Modules
    • 视图上选择+号,选中api里面的pom.xml
  • IDEA工具隐藏*.iml等*

    点击File–>setting(或者Ctrl+Alt+S)–>Editor–> Flie Types 在ignore files and folders,然后在输入框最后面跟上*.idea;*.iml;

1.1、微服务cloud整体聚合父工程Project

  • New Project

在这里插入图片描述

  • 聚合总父工程名字

在这里插入图片描述

  • Maven选版本

在这里插入图片描述

  • 工程名字

在这里插入图片描述

  • 字符编码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RS0wowm4-1628737746183)(file:///A:/%E5%B0%9A%E7%A1%85%E8%B0%B7/Jvm/%E5%8D%9A%E5%AE%A2%E7%BD%91%E9%A1%B5/(28%E6%9D%A1%E6%B6%88%E6%81%AF)]%20SpringCloud%E7%AC%AC%E4%B8%89%E7%AB%A0%EF%BC%88%E4%B8%8A%EF%BC%89%E7%88%B6%E5%B7%A5%E7%A8%8B%E5%88%9B%E5%BB%BA_likun111%E7%9A%84%E5%8D%9A%E5%AE%A2-CSDN%E5%8D%9A%E5%AE%A2_files/20210509015144369.png)

  • 注解生效激活

在这里插入图片描述

  • java编译版本选8

在这里插入图片描述

  • File Type过滤

在这里插入图片描述

1.2、父工程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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.likun.springcloud</groupId>
    <artifactId>mscloud03</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>
 
    <!-- 统一管理jar包版本 -->
    <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.version>1.2.17</log4j.version>
        <lombok.version>1.16.18</lombok.version>
        <mysql.version>5.1.47</mysql.version>
        <druid.version>1.1.16</druid.version>
        <mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version>
    </properties>
 
    <!-- 子模块继承之后,提供作用:锁定版本+子modlue不用写groupId和version  -->
    <dependencyManagement>
        <dependencies>
            <!--spring boot 2.2.2-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.2.2.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--spring cloud Hoxton.SR1-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Hoxton.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--spring cloud alibaba 2.1.0.RELEASE-->
            <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>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>${druid.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>${mybatis.spring.boot.version}</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
                <optional>true</optional>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                    <addResources>true</addResources>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

1.3、Maven工程落地细节复习

  • Maven中的DependencyManagement和Dependencies

    dependencyManagement

    Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。
    通常会在一个组织或者项目的最顶层的父POM 中看到dependencyManagement 元素。

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

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-okEJpszj-1628737746187)在这里插入图片描述

    这样做的好处就是:如果有多个子项目都引用同一样依赖,则可以避免在每个使用的子项目里都声明一个版本号,这样当想升级或切换到另一个版本时,只需要在顶层父容器里更新,而不需要一个一个子项目的修改 ;另外如果某个子项目需要另外的一个版本,只需要声明version就可。

    • **dependencyManagement里只是声明依赖,`并不实现引入`,因此子项目需要显示的声明需要用的依赖。**
      
      
    • **如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;**
      
      
    • 如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。 
      
  • maven中跳过单元测试

配置

<build><!-- maven中跳过单元测试 -->
 <plugins>
     <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
         <configuration>
             <skip>true</skip>
         </configuration>
     </plugin>
 </plugins>
</build>

IDEA工具支持(推荐)

在这里插入图片描述

父工程创建完成执行mvn:install将父工程发布到仓库方便子工程继承

1.4、mysql驱动说明

com.mysql.jdbc.Driver和mysql-connector-java 5一起用。
com.mysql.cj.jdbc.Driver和mysql-connector-java 6 一起用。

com.mysql.cj.jdbc.Driver是mysql-connector-java 6 中的特性,相比mysql-connector-java 5 多了一个时区:serverTimezone,把数据源配置的驱动改一下就好了

4、mysql驱动说明

com.mysql.jdbc.Driver和mysql-connector-java 5一起用。
com.mysql.cj.jdbc.Driver和mysql-connector-java 6 一起用。

com.mysql.cj.jdbc.Driver是mysql-connector-java 6 中的特性,相比mysql-connector-java 5 多了一个时区:serverTimezone,把数据源配置的驱动改一下就好了

org.gjt.mm.mysql.Driver是当时最好的MySQL JDBC,但不是MySQL公司的,然后MySQL将MM的JDBC驱动 收为官方的JDBC驱动,所以将驱动的package也改了,但还保留了org.gjt.mm.mysql.Driver这个路径的引用,也就是你使用新版的JDBC驱动时还可以通过这个来引用,打开下载的新版JDBC驱动的jar文件可以看到,只有一个文件的目录是org.gjt.mm.mysql,就是为了兼容而设计的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值