什么是Spring
Spring是一个开源框架,2003年兴起的一个轻量级的Java开发框架,作者:Rod Johnson。
Spring是为了解决企业级应用开发的复杂性而创建的,简化开发。
Spring是如何简化Java开发的
为了降低Java开发的复杂性,Spring采用了以下四种关键策略:
1.基于POJO的轻量级和小侵入性编程;
2.通过IOC,依赖注入(DI)和面向接口实现松耦合;
3.基于切面(AOP)和惯例进行声明式编程;
4.通过切面和模板减少样式代码;
Spring Boot的主要优点:
为所有Spring开发者更快的入门
开箱即用,提供各种默认配置来简化项目配置
内嵌式容器简化Web项目
没有沉余代码生成和XML配置的要求
微服务
什么是微服务?
微服务是一种架构风格,它要求我们在开发一个应用的时候,这个应用必须构建成一系列小服务的组合;可以通过http的方式进行互通。要说微服务架构,先得说说过去我们的单体应用架构。
单体应用架构
所谓单体应用架构(all in one)是指,我们将一个应用中的所有应用服务都封装在一个应用中,无论是Erp,CRM或是其他什么系统,你都把数据库访问,web访问,等等各个功能放到一个war包内。
这样做得好处是:易于开发和测试;也十分方便部署;当需要扩展时,只需要将war包复制多份,然后放到多个服务器上,再做个负载均衡就可以了。
单体应用架构的缺点是,哪怕我要修改一个非常小的地方,我都需要停掉整个服务,重新打包,部署这个应用war包。特别是对于一个大型应用,我们不可能把所有内容都放在一个应用里面,我们如何维护,如何分工合作都是问题。
微服务架构
alli in one的架构方式,我们把所有的功能单元放在一个应用里面。然后我们把整个应用部署到服务器上。如果负载能力不行,我们将整个应用进行水平复制,进行扩展,然后在负载均衡。
所谓微服务架构,就是打破之前all in one的架构方式,把每个功能元素独立出来。把独立出来的功能元素的动态组合,需要的功能元素才拿来组合,需要多一些时可以整合多个功能元素。所以微服务架构是对功能元素进行复制,而没有对整个应用进行复制。
这样做的好处是:
1.节省了调用资源。
2.每个功能元素的服务都是一个可替换的,可独立升级的软件代码。
第一个SpringBoot程序
.jdk1.8
.maven3.6.1
.springboot:最新版
.IDEA
官方:提供了一个快速生成的网站!IDEA集成了这个网站!
.可以在官网直接下载,导入IDEA开发(官网下载)
.直接使用IDEA创建一个springboot项目(一般开发直接在IDEA中创建)
原理初探
自动配置:
pom.xml
.spring-boot-dependencies:核心依赖在父工程中!
.我们在写或者引入一些SpringBoot依赖的时候,不需要指定版本,就因为有这些版本仓库
启动器
》<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifacrId>
</dependcy>
启动器:SpringBoot的启动场景;
》比如spring-boot-starter-web,他就会帮我们自动导入web环境所有的依赖~
springboot会将所有功能场景变成一个个启动器