SpringBoot2-[SpringBoot优缺点、微服务理解、版本仲裁]
👨🏻🎓博主介绍:大家好,我是芝士味的椒盐,一名在校大学生,热爱分享知识,很高兴在这里认识大家🌟🌈擅长领域:Java、大数据、运维、电子🙏🏻如果本文章各位小伙伴们有帮助的话,🍭关注+👍🏻点赞+🗣评论+📦收藏,相应的有空了我也会回访,互助!!!🤝另本人水平有限,旨在创作简单易懂的文章,在文章描述时如有错,恳请各位大佬指正,在此感谢!!!文章目录Spring.ioSpring
👨🏻🎓博主介绍:大家好,我是芝士味的椒盐,一名在校大学生,热爱分享知识,很高兴在这里认识大家🌟
🌈擅长领域:Java、大数据、运维、电子
🙏🏻如果本文章各位小伙伴们有帮助的话,🍭关注+👍🏻点赞+🗣评论+📦收藏,相应的有空了我也会回访,互助!!!
🤝另本人水平有限,旨在创作简单易懂的文章,在文章描述时如有错,恳请各位大佬指正,在此感谢!!!
Spring.io
Spring5重大升级
-
响应式架构和传统spring的SpringMvc项目架构的两套技术栈
- 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交互
-
服务围绕业务功能拆分
-
可以由全自动部署机制独立部署
-
去中心化,服务自治。服务可以使用不同的语言、不同的存储技术
-
分布式:
- 分布式解决方案:SpringBoot+SpringCloud
SpringBoot官方文档
Maven设置
<!--配置国内镜像源-->
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<!--配置编译环境-->
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
SpringBoot版本依赖管理、仲裁
-
因为所有的SpringBoot项目的maven的pom.xml都继承自spring-boot-starter-parent
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.7.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
-
spring-boot-starter-parent继承了org.springframework.boot,该父类即保存了常见的依赖版本实现版本仲裁
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.3.7.RELEASE</version> </parent>
-
部分显示
<activemq.version>5.15.14</activemq.version> <antlr2.version>2.7.7</antlr2.version> <appengine-sdk.version>1.9.83</appengine-sdk.version> <artemis.version>2.12.0</artemis.version> <aspectj.version>1.9.6</aspectj.version> <assertj.version>3.16.1</assertj.version> <atomikos.version>4.0.6</atomikos.version> <awaitility.version>4.0.3</awaitility.version> <bitronix.version>2.1.4</bitronix.version> <build-helper-maven-plugin.version>3.1.0</build-helper-maven-plugin.version> <byte-buddy.version>1.10.18</byte-buddy.version> <caffeine.version>2.8.8</caffeine.version> <cassandra-driver.version>4.6.1</cassandra-driver.version> <classmate.version>1.5.1</classmate.version> .......
-
如此就无需加版本号
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
-
若版本库里的版本号无法满足要求可以如下更改,若库里没有依赖的版本就需要按往常一样添加版本号
<properties> <java.version>1.8</java.version> <mysql.version>8.0.22</mysql.version> </properties>
-
更多推荐
所有评论(0)