1.1 什么是SpringBoot
我们知道 SSM 框架 简化了我们的开发流程,让我们开发一个 WEB 应用十分的轻松和简单。但是 配置 却变得 “地狱”。所以 Spring 就将 SSM 简化成了 “SpringBoot” 大家也称它为 “微服务架构”
WEB 应用,都是 打包 的 war 然后运行在 tomcat 上的。
但是 SpringBoot 它一般情况下,打的 是 Jar 包。。那么 Jar 包怎么 跑起来呢?答:你内嵌个 Tomcat 服务器就完事了。(是不是感觉很滑稽。)
什么是微服务
微服务是一种架构风格,它要求我们在开发一个应用的时候,这个应用必须构建成一系列小服务的组合。可以通过 http 的方式进行互通。要说微服务架构,先得说说过去我们的单体应用架构。
单体应用架构
所谓单体应用架构 (all in one)是指,我们将所有的服务都封装在一个应用中。
无论是 ERP、CRM 或 其他什么系统,你都把数据的访问、WEB的访问、等等各个功能 都放到 一个 war 包里面。
- 这样做的好处是,易于开发和测试,也十分方便部署。当需要扩展的时候,只需要将 war 包 复制多份,然后放到多个服务器上,再做个负载均衡就行了。
- 单体应用架构的缺点是,哪怕我要修改一个非常小的地方,我都需要停掉整个服务,重新打包、部署这个应用war包。特别是对于一个大型应用,我们不可能把所有内容都放到一个应用里。我们如何维护、如何分工合作在后续都是个大问题!这一点,我亲身感受过。我自己在上个假期 去 部署一个 servlet web程序的时候,那家伙 给我折腾的,稍作改动,就得 停掉服务,重新部署。
微服务架构:你其实可以理解为,我们以前不是有 service 业务层嘛。然后里面有各种各样的业务。把这些业务 都拆分出来,变成一个一个的业务模块。
比如说一个电商系统,查缓存、连接数据库、浏览页面、结账、支付等服务都是一个一个独立的功能服务,这就是被微化了。它们作为一个一个微服务共同构建了一个庞大的系统。如果修改其中的一个功能,只需要更新升级 其中一个功能 服务单元即可。
但是这种庞大的系统架构给部署和运维打来很大的难度,于是,spring为我们 带来了 构建大型分布式服务的圈套、全程产品。
- 构建一个个 功能独立的微服务应用单元,这个时候。可以使用 SpringBoot,它可以帮我们快速构建一个微服务应用。
- 大型分布式网络服务的调用,这部分也可以 交由 Spring Cloud 来完成,实现 分布式。
- 在分布式中间,进行流式数据计算、批处理,我们有 Spring Cloud Data Flow。
- 综上所述,Spring 已经为我们想清楚乐整个 从开始构建应用到大型分布式应用的全流程方案!
1.2 HelloSpringBoot
下载之后,直接解压缩。然后 用 IDEA 打开。如果 maven 配置没问题的话。它会 全部下载完毕。你就会看到 如下的 场景。
- 当然 也可以 使用 IDEA 来 快速创建 一个 SpringBoot 项目。
你会发现 这里 所有的东西,都跟 我们 刚才那个 官网里面的一样。
简单 查看一下 @SpringBootApplication
@Configuration
以 Java 的方式 去进行 Spring 的配置。
所以 本质上,还是 基于 Spring 开发出来的注解。
- pom.xml 暗藏玄机
有一个 远程的 仓库,也就是说 我们 继承了 这个 远程项目的 maven 配置。所以 有一部分 maven 我们是看不到的。它没有给我们 显露出来。
spring-boot-starter-web
: 这个是 集成了 SpringMVC 和 内嵌 tomcat 的。
spring-boot-starter-test
:SpringBoot 的单元测试
如果 这个 地方 爆红,说 找不到 插件。那你就直接 进入 org.springframework.boot 那里,查看下 版本号
。把 版本号 写上即可。
spring-boot-maven-plugin
:打 jar 包 的 插件。
- 打 jar 包
然后 你就发现,拿着 一个 jar 包,到处 可以 运行了。贼爽,贼牛逼。啥环境 也不需要!
java -jar xxx.jar
更改 端口号 和 项目启动 LOGO
-
直接 在 application.properties 里面 写
server.port = 端口号
即可。
-
在 resource 目录下,新建 banner.txt 文件,然后 放上去 替换的文本 即可 替换 项目启动的 字符串 logo