目录
开发环境要求
JDK 版本:Java 8 以上
java -version
Maven 环境:Apache Maven 3.3 以上
mvn -v
Maven 配置
修改maven全局配置文件 D:\JavaDev\apache-maven-3.6.3\conf\settings.xml 文件
使用阿里云镜像
配置使用 jdk1.8 编译项目
<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 与 Spring
SpringBoot 是一个高层框架,底层是Spring框架,整合了Spring系列技术栈。
Spring 5 重大升级
引入响应式编程
Spring组合提供了两个并行技术栈。Spring Security都提供了对这两个栈的本地支持:
- 一种是基于原生的带有Spring MVC和Spring Data构造的Servlet API。
- 一个是完全响应式技术栈,它利用了Spring WebFlux和Spring Data的响应式存储库,通过构建异步数据流的方式完成响应式开发。
内部源码设计
Java8 的一些新特性(比如接口默认实现)、重新设计源码结构。
为什么要使用SpringBoot
Spring Boot 很容易创建独立的、基于Spring的生产级应用程序,可以“直接运行”。
-
创建独立的Spring应用程序
-
直接嵌入Tomcat、Jetty或Undertow(不需要部署WAR文件)
-
提供自动的“starter”依赖项来简化构建配置
-
自动配置Spring和第三方库
-
提供可用于生产的特性,如监控、运行状况检查和外部化配置
-
自动化配置不需要额外的代码生成,也不需要XML配置
SpringBoot 的时代背景
微服务
什么是微服务?
- 微服务是一种架构风格,将一个应用拆分成一组小型服务,每一个服务都可以独立运行部署,服务之间使用轻量级的Http交互
- 每个服务围绕业务进行拆分,可以由全自动部署机制独立部署
- 去中心化,服务自治。每个服务可以使用不同的语言开发、不同的存储技术。
分布式
一个大型应用被拆分成多个微服务独立部署时,必然就产生分布式。分布式就是将一个服务部署在多台服务器上,这样就面临着分布式难题:
- 远程调用
微服务之间互相远程调用,通过Http实现通讯 - 服务发现
各个微服务进行分布式部署,远程调用时,就需要知道哪些机器上目标服务是正常运行能够远程调用的 - 负载均衡
各个微服务进行分布式部署,远程调用时,可以调用多台机器上服务达到相同的目的时,该使用什么样的策略进行远程调用 - 服务容错
服务之间远程调用时,出现异常的处理能力 - 配置管理
微服务进行分布式部署时,在配置中心进服务配置更新,各服务相互之间同步配置问题 - 服务监控
众多的服务运行监控问题 - 链路追踪
微服务之间远程调用出现异常,异常追踪问题 - 日志管理
- 任务调度
分布式解决方案
SpringBoot + SpringCloud
云原生
原生应用如何上云?CloudNative
上云的困难:
- 服务自愈
- 弹性伸缩
- 服务隔离
- 自动化部署
- 灰度发布
- 流量治理