SpringBoot2-[SpringBoot优缺点、微服务理解、版本仲裁]

在这里插入图片描述

‍博主介绍:大家好,我是芝士味的椒盐,一名在校大学生,热爱分享知识,很高兴在这里认识大家
擅长领域:Java、大数据、运维、电子
如果本文章各位小伙伴们有帮助的话,关注+点赞+评论+收藏,相应的有空了我也会回访,互助!!!
另本人水平有限,旨在创作简单易懂的文章,在文章描述时如有错,恳请各位大佬指正,在此感谢!!!


文章目录

      • Spring.io
      • Spring5重大升级
      • SpringBoot优点
      • SpringBoot缺点
      • 微服务
      • SpringBoot官方文档
      • Maven设置
      • SpringBoot版本依赖管理、仲裁

Spring.io

SpringBoot2-[SpringBoot优缺点、微服务理解、版本仲裁]_第1张图片

Spring5重大升级

  • 响应式架构和传统spring的SpringMvc项目架构的两套技术栈
    SpringBoot2-[SpringBoot优缺点、微服务理解、版本仲裁]_第2张图片

    • Reactive Stack :使用构建异步数据流响应开发数据访问、响应web开发、响应开发Security安全应用
  • 基于Java8的一些新特性,如:接口默认实现。重新设计源码架构。

SpringBoot优点

  • Create stand-alone Spring applications
  • 创建独立Spring应用
  • Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
  • 内嵌web服务器
  • Provide opinionated ‘starter’ dependencies to simplify your build configuration
  • 自动starter依赖,简化构建配置
  • Automatically configure Spring and 3rd party libraries whenever possible
  • 自动配置Spring以及第三方功能
  • Provide production-ready features such as metrics, health checks, and externalized configuration
  • 提供生产级别的监控、健康检查及外部化配置
  • Absolutely no code generation and no requirement for XML configuration
  • 无代码生成、无需编写XML

SpringBoot是整合Spring技术栈的一站式框架

SpringBoot是简化Spring技术栈的快速开发脚手架

SpringBoot缺点

  • 社区过于活跃,版本迭代太快,需要时刻关注新特性
  • 底层的Spring被封装过深不好挖掘。

微服务

  • 微服务是一种架构风格

  • 一个应用拆分为一组小型服务

  • 每个服务运行在自己的进程内,也就是可独立部署和升级

  • 服务之间使用轻量级HTTP交互

  • 服务围绕业务功能拆分

  • 可以由全自动部署机制独立部署

  • 去中心化,服务自治。服务可以使用不同的语言、不同的存储技术

  • 分布式:

    SpringBoot2-[SpringBoot优缺点、微服务理解、版本仲裁]_第3张图片

    • 分布式解决方案:SpringBoot+SpringCloud

SpringBoot官方文档

SpringBoot2-[SpringBoot优缺点、微服务理解、版本仲裁]_第4张图片
SpringBoot2-[SpringBoot优缺点、微服务理解、版本仲裁]_第5张图片

Maven设置


<mirrors>
      <mirror>
        <id>nexus-aliyunid>
        <mirrorOf>centralmirrorOf>
        <name>Nexus aliyunname>
        <url>http://maven.aliyun.com/nexus/content/groups/publicurl>
      mirror>
  mirrors>
 
  <profiles>
         <profile>
              <id>jdk-1.8id>
              <activation>
                <activeByDefault>trueactiveByDefault>
                <jdk>1.8jdk>
              activation>
              <properties>
                <maven.compiler.source>1.8maven.compiler.source>
                <maven.compiler.target>1.8maven.compiler.target>
                <maven.compiler.compilerVersion>1.8maven.compiler.compilerVersion>
              properties>
         profile>
  profiles>

SpringBoot版本依赖管理、仲裁

  • 因为所有的SpringBoot项目的maven的pom.xml都继承自spring-boot-starter-parent

    <parent>
            <groupId>org.springframework.bootgroupId>
            <artifactId>spring-boot-starter-parentartifactId>
            <version>2.3.7.RELEASEversion>
            <relativePath/> 
    parent>
    
  • spring-boot-starter-parent继承了org.springframework.boot,该父类即保存了常见的依赖版本实现版本仲裁

    <parent>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-dependenciesartifactId>
        <version>2.3.7.RELEASEversion>
      parent>
    
    • 部分显示

      <activemq.version>5.15.14activemq.version>
          <antlr2.version>2.7.7antlr2.version>
          <appengine-sdk.version>1.9.83appengine-sdk.version>
          <artemis.version>2.12.0artemis.version>
          <aspectj.version>1.9.6aspectj.version>
          <assertj.version>3.16.1assertj.version>
          <atomikos.version>4.0.6atomikos.version>
          <awaitility.version>4.0.3awaitility.version>
          <bitronix.version>2.1.4bitronix.version>
          <build-helper-maven-plugin.version>3.1.0build-helper-maven-plugin.version>
          <byte-buddy.version>1.10.18byte-buddy.version>
          <caffeine.version>2.8.8caffeine.version>
          <cassandra-driver.version>4.6.1cassandra-driver.version>
          <classmate.version>1.5.1classmate.version>
      											.......
      
    • 如此就无需加版本号

      <dependency>
                  <groupId>mysqlgroupId>
                  <artifactId>mysql-connector-javaartifactId>
       dependency>
      
    • 若版本库里的版本号无法满足要求可以如下更改,若库里没有依赖的版本就需要按往常一样添加版本号

      <properties>
              <java.version>1.8java.version>
              <mysql.version>8.0.22mysql.version>
      properties>
      

你可能感兴趣的:(SpringBoot框架模块,springboot,java,spring,cloud,spring)