天天看點

SpringCloud學習(3)-------使用IDEA快速搭建Rest微服務項目一、技術選型 二、搭建微服務工程

目錄

一、技術選型

 二、搭建微服務工程

2.1建立微服務整體聚合父工程Project

2.2Rest微服務工程建構

一、技術選型

SpringCloud SpringBoot SpringCloud Alibaba JAVA Maven MySQl
Hoxton.SR1 2.2.2.RELEASE 2.1.0.RELEASE JDK8 3.5及以上 5.7及以上

SpringBoot版本不斷更新,如果單獨開發一個SpringBoot項目,版本越新越好;如果同時用boot和cloud,需要照顧Springcloud版本,由cloud版本決定boot版本。

SpringBoot和SpringCloud版本依賴關系圖:

SpringCloud Version SpringBoot  Version
H 2.2.x
G 2.1.x
F 2.0.x
E 1.5.x
D 1.5.

查詢https://start.spring.io/actuator/info解析字元串可以檢視更詳細的版本對應關系

SpringCloud學習(3)-------使用IDEA快速搭建Rest微服務項目一、技術選型 二、搭建微服務工程

 二、搭建微服務工程

2.1建立微服務整體聚合父工程Project

(1)New Project

SpringCloud學習(3)-------使用IDEA快速搭建Rest微服務項目一、技術選型 二、搭建微服務工程

 (2)聚合總工程名字

(3)Maven選版本,導入本地倉庫

(4)工程名字

(5)字元編碼

SpringCloud學習(3)-------使用IDEA快速搭建Rest微服務項目一、技術選型 二、搭建微服務工程

(6)注解生效激活

SpringCloud學習(3)-------使用IDEA快速搭建Rest微服務項目一、技術選型 二、搭建微服務工程

(7)java編譯版本選8

SpringCloud學習(3)-------使用IDEA快速搭建Rest微服務項目一、技術選型 二、搭建微服務工程

(8)File Type過濾

SpringCloud學習(3)-------使用IDEA快速搭建Rest微服務項目一、技術選型 二、搭建微服務工程

 Maven: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>com.atguigu.springcloud</groupId>
  <artifactId>cloud2020</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>
 
 
           

 解決maven下載下傳不了jar的問題請複制這個連結到浏覽器自行解決:https://blog.csdn.net/HeyWeCome/article/details/104543411

SpringCloud學習(3)-------使用IDEA快速搭建Rest微服務項目一、技術選型 二、搭建微服務工程
SpringCloud學習(3)-------使用IDEA快速搭建Rest微服務項目一、技術選型 二、搭建微服務工程

 父工程建立完成執行mvn:install将父工程釋出到倉庫友善子工程繼承.

2.2Rest微服務工程建構

(1)cloud-provider-payment8001微服務提供者支付Module子產品

1.建module

2.改pom

<dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-jdbc -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-devtools -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
           <scope>runtime</scope>
            <optional>true</optional>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>


    </dependencies>


           

3. 建application.yml

server:
  port: 8001


spring:
  application:
    name: cloud-payment-service
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: org.gjt.mm.mysql.Driver
    url: jdbc:mysql://localhost:3306/cloud2020?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: 123456

mybatis:
  mapperLocations: classpath:mapper/*.xml
  type-aliases-package: com.atguigu.springcloud.entities
 
 
           

4.主啟動

5.業務類(建SQL+entitles+dao+service+controller)

(2)熱部署Devtools(需要重新開機IDEA)

(3)cloud-consumer-order80微服務消費者訂單Module子產品

同樣流程:建module,改pom,加yml,建立啟動類,寫業務類(建SQL+entitles+dao+service+controller)

(4)工程重構

此時系統中有重複部分(服務提供者和服務消費者有相同的實體層),需要重構。

建立一個module:cloud-api-commons,改pom,引入entities包,maven指令clean install;

改造服務消費者80,和服務提供者8001:删除各自的原先有過的entities檔案夾,引入cloud-api-commons依賴。

SpringCloud學習(3)-------使用IDEA快速搭建Rest微服務項目一、技術選型 二、搭建微服務工程

繼續閱讀