SpringCloud 学习笔记总结 (一)

发布时间:2024-03-01 12:01

文章目录

  • 1. 基于分布式的微服务架构
  • 2. SpringBoot 和 SpringCloud 版本
  • 3. 由SpringCloud官方参考文档 来决定使用哪个版本的SpringBoot
  • 3. SpringCloud 维护升级以及每个服务对应的技术架构
  • 4. 微服务cloud整体 聚合父工程Project
  • 5.微服务cloud整体 父工程pom.xml文件配置
  • 6. SpringBoot 整合mybatis
  • 7. 热部署 Devtools
  • 8. Dashboard的使用
  • 9. 公用模块-common
  • 10. Hutool包的使用
  • 11. Maven项目 如何转成SpringBoot项目

介绍SpringCloud,以及搭建环境。

1. 基于分布式的微服务架构


SpringCloud 学习笔记总结 (一)_第1张图片

SpringCloud是分布式微服务架构的一站式解决方案,是多种微服务架构落地技术的集合体。俗称:微服务全家桶。

整体架构图:
SpringCloud 学习笔记总结 (一)_第2张图片

2. SpringBoot 和 SpringCloud 版本


之前SpringCloud有D版和SpringBoot 1.X版配合搭建,这两个版本已经过时了。

现在使用SpringCloud H版和SpringBoot 2.X版。


SpringCloud的版本命名规则:
SpringCloud 学习笔记总结 (一)_第3张图片


SpringBoot和SpringCloud有严格的版本对应,他们之前不同版本可能存在冲突!因此必须严格按照官网来对应。
SpringCloud 学习笔记总结 (一)_第4张图片

更详细的版本对应查看网址:http://start.spring.io/actuator/info

之后使用,JSON处理工具:tool.lu 格式化出来:
SpringCloud 学习笔记总结 (一)_第5张图片


之后学习的环境搭建版本:
SpringCloud 学习笔记总结 (一)_第6张图片

3. 由SpringCloud官方参考文档 来决定使用哪个版本的SpringBoot


SpringCloud 学习笔记总结 (一)_第7张图片
SpringCloud 学习笔记总结 (一)_第8张图片

3. SpringCloud 维护升级以及每个服务对应的技术架构


以下红叉的是已经停止更新维护的。


服务注册中心:
SpringCloud 学习笔记总结 (一)_第9张图片


服务调用:
SpringCloud 学习笔记总结 (一)_第10张图片


服务降级(熔断):
SpringCloud 学习笔记总结 (一)_第11张图片


服务网关:
SpringCloud 学习笔记总结 (一)_第12张图片


服务配置:
SpringCloud 学习笔记总结 (一)_第13张图片


服务总线:

SpringCloud 学习笔记总结 (一)_第14张图片


总体上,技术图:

SpringCloud 学习笔记总结 (一)_第15张图片

4. 微服务cloud整体 聚合父工程Project


因为使用的是maven环境,就是约定 > 配置 > 编码


第一步:创建maven父工程项目,选择maven版本。
SpringCloud 学习笔记总结 (一)_第16张图片


第二步:修改整个项目环境的字符编码集,改为UTF-8。
SpringCloud 学习笔记总结 (一)_第17张图片

Transparent native-to-ascii conversion的意思是:自动转换ASCII编码。
SpringCloud 学习笔记总结 (一)_第18张图片


第三步:注解生效激活。

  • 启动注解处理:
    SpringCloud 学习笔记总结 (一)_第19张图片

第四步:java编辑版本选择8版本。
SpringCloud 学习笔记总结 (一)_第20张图片


第五步:File Type 过滤,随意设置,这个就是过滤那些像.idea ,.iml等等的这种和代码本身没有直接关联的可以不让他们显示。
SpringCloud 学习笔记总结 (一)_第21张图片
SpringCloud 学习笔记总结 (一)_第22张图片

5.微服务cloud整体 父工程pom.xml文件配置


第一步:packaging设置为pom,父工程都会设置为pom。


第二步:除了pom,像src文件夹都删除掉。
SpringCloud 学习笔记总结 (一)_第23张图片


第三步:配置pom文件相关依赖版本。



<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.0modelVersion>

  <groupId>com.itholmes.springcloudgroupId>
  <artifactId>cloud2020artifactId>
  <version>1.0-SNAPSHOTversion>
  
  <packaging>pompackaging>

  
  <properties>
    <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
    <maven.compiler.source>1.8maven.compiler.source>
    <maven.compiler.target>1.8maven.compiler.target>
    <junit.version>4.12junit.version>
    <log4j.version>1.2.17log4j.version>
    <lombk.version>1.16.18lombk.version>
    <mysql.version>8.0.18mysql.version>
    <druid.version>1.1.16druid.version>
    <mybatis.spring.boot.version>1.3.0mybatis.spring.boot.version>
  properties>

  
  <dependencyManagement>
    <dependencies>

      
      <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-dependenciesartifactId>
        <version>2.2.2.RELEASEversion>
        <type>pomtype>
        <scope>importscope>
      dependency>
      
      <dependency>
        <groupId>org.springframework.cloudgroupId>
        <artifactId>spring-cloud-dependenciesartifactId>
        <version>Hoxton.SR1version>
        <type>pomtype>
        <scope>importscope>
      dependency>
      
      <dependency>
        <groupId>com.alibaba.cloudgroupId>
        <artifactId>spring-cloud-alibaba-dependenciesartifactId>
        <version>2.1.0.RELEASEversion>
        <type>pomtype>
        <scope>importscope>
      dependency>

      
      <dependency>
        <groupId>org.mybatis.spring.bootgroupId>
        <artifactId>mybatis-spring-boot-starterartifactId>
        <version>${mybatis.spring.boot.version}version>
      dependency>
      
      <dependency>
        <groupId>junitgroupId>
        <artifactId>junitartifactId>
        <version>${junit.version}version>
      dependency>
      
      <dependency>
        <groupId>log4jgroupId>
        <artifactId>log4jartifactId>
        <version>${log4j.version}version>
      dependency>

    dependencies>
  dependencyManagement>

  <name>Mavenname>
  
  <url>http://maven.apache.org/url>
  <inceptionYear>2001inceptionYear>
  
project>

可以跳过单元测试的按钮:
SpringCloud 学习笔记总结 (一)_第24张图片

6. SpringBoot 整合mybatis


type-aliases-package可以生命别名!!

mybatis:
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.itholmes.springcloud.entities # 所有Entity别名类所在包

useGeneratedKeys=“true” 和 keyProperty主键 从而返回值就是主键ID值:

  • keyProperty中对应的值是实体类的属性,而不是数据库的字段。
<insert id="create" parameterType="Payment" useGeneratedKeys="true" keyProperty="id">
    insert into payment (serial) values (#{serial})
insert>

7. 热部署 Devtools


第一步:Adding devtools 。


<dependency>
  <groupId>org.springframework.bootgroupId>
  <artifactId>spring-boot-devtoolsartifactId>
  <version>2.7.0version>
dependency>

第二步:Adding plugin。

<build>
  <plugins>
    <plugin>
      <groupId>org.springframework.bootgroupId>
      <artifactId>spring-boot-maven-pluginartifactId>

      <configuration>
      	
        <fork>truefork>
        <addResources>trueaddResources>
      configuration>
    plugin>
  plugins>
build>

第三步:Enabling automatic build。设置idea。
SpringCloud 学习笔记总结 (一)_第25张图片

第四步:update the value of。

在pom.xml文件执行快捷键:
SpringCloud 学习笔记总结 (一)_第26张图片
SpringCloud 学习笔记总结 (一)_第27张图片

第五步:重启idea,这样就会热部署自动化配置了。

8. Dashboard的使用


启动多个项目的时候,就使用idea的Dashboard。
SpringCloud 学习笔记总结 (一)_第28张图片

SpringCloud 学习笔记总结 (一)_第29张图片


如何让Run Dashboard显示到idea的下方任务栏中:

第一步:打开父项目对应的.idea目录,找到workspace.xml文件。
SpringCloud 学习笔记总结 (一)_第30张图片
第二步:添加配置如下中:
SpringCloud 学习笔记总结 (一)_第31张图片
第三步:重启idea就可以了。

9. 公用模块-common


一般多个微服务都会公用一个公用模块项目(一般叫做common)。

这个项目存放的一般都是pojo类,Utils工具类等等公共代码。通过maven的install或者deploy的特性,通过GAV添加对应依赖,从本地或者私服来获得该jar包。

10. Hutool包的使用


Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率。

Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

<dependency>
    <groupId>cn.hutoolgroupId>
    <artifactId>hutool-allartifactId>
    <version>5.6.5version>
dependency>

11. Maven项目 如何转成SpringBoot项目


第一步:导入SpringBoot相关依赖。

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-webartifactId>
dependency>

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-actuatorartifactId>
dependency>

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-devtoolsartifactId>
    <scope>runtimescope>
    <optional>trueoptional>
dependency>

<dependency>
    <groupId>org.projectlombokgroupId>
    <artifactId>lombokartifactId>
    <optional>trueoptional>
dependency>

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-testartifactId>
    <scope>testscope>
dependency>

<dependency>
    <groupId>org.mybatis.spring.bootgroupId>
    <artifactId>mybatis-spring-boot-starterartifactId>
dependency>

第二步:在Resource目录下,创建application.yml文件。
SpringCloud 学习笔记总结 (一)_第32张图片

第三步:在创建对应的SpringBoot启动Main方法。

package com.itholmes.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class OrderMain80 {
    public static void main(String[] args) {
        SpringApplication.run(OrderMain80.class,args);
    }
}

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号