SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始化搭建以及开发过程
Spring程序缺点:依赖设置繁琐、配置繁琐
SpringBoot程序优点:起步依赖(简化依赖配置)自动配置(简化常用工程相关配置)辅助功能(内置服务器…)
我们做程序的过程中避免不了的会导入相同的坐标,比如在俩个工程中,我们都会用到两份相同的坐标,这样往往会因为坐标冲突而引发一系列问题。但可以使用一个坐标,也可以做成两个文件坐标集中管理,版本集中管理,可解决依赖冲突问题。
例如在pom文件中导入servlet的坐标,不用写版本号,在刷新Maven后,会自动出现带有版本号的servlet坐标。
其实,就是因为parent帮我们做的继承后又继承了dependencies,而dependencies中定义了几百个版本信息,定义了一系列的坐标引用信息,方便我们的配置,从而避免冲突现象的发生。
可是,在阿里云中创建的项目中,使用dependencyManagement在其中引用dependencies。
多学一招
如果要研究依赖坐标的版本管理,完全取决于现在SpringBoot的版本,可以取不同版本的pom文件进行对比,选中右键Compare Files可进行文件的比对,在properties中不一样的就是版本的变化,一个SpringBoot对应的版本号对应的里面的坐标实际上是不一样的。
1、开发SpringBoot程序要继承spring-boot-starter-parent
2、spring-boot-starter-parent中定义了若干个依赖管理
3、继承parent模块可以避免多个依赖使用相同技术时出现依赖版本冲突
4、继承parent的形式可以采用引入依赖的形式实现效果
因为我们导入了start,start中导入了具体的依赖,所以我们就不用导入了,即为依赖传递
starterSpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到减少依赖配置的目的
parent所有SpringBoot项目要继承的项目,定义了若干个坐标版本号==(依赖管理,而非依赖),以达到减少依赖冲突==的目的
spring-boot-starter-parent各版本间存在着诸多坐标版本不同
使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供,除非SpringBoot来提供对应版本的V
如发生坐标错误,再指定Version(要小心版本冲突)
1、开发SpringBoot程序需要导入坐标时通常导入对应的starter
2、每个不同的starter根据功能不同,通常包含多个自来坐标
3、使用starter可以实现快速配置的效果,达到简化配置的目的
SpringBoot的引导类是Boot工程的执行入口,运行main方法就可以启动项目
SpringBoot工程运行后初始化Spring容器,扫描引导类所在包加载Bean
package com.zg;
import com.zg.controller.BookController;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class Springboot0101QuickstartApplication {
public static void main(String[] args) {
//SpringApplication.run(Springboot0101QuickstartApplication.class, args);
ConfigurableApplicationContext ctx = SpringApplication.run(Springboot0101QuickstartApplication.class, args);
BookController bean = ctx.getBean(BookController.class);
System.out.println("bean--->"+bean);
}
}
所以,在SpringApplication.run(Springboot0101QuickstartApplication.class, args);中就是定义了一个Spring容器
引导类主要靠@SpringBootApplication注解通过@Configuration的注解,以前在Spring中也是通过@Configuration加载配置类
1、SpringBoot工程提供引导类用来启动程序
2、SpringBoot工程启动后创建并初始化Spring容器
Tomcat的内嵌式因为tomcat也是用Java语言编写的,所以将一个tomcat容器的执行
过程抽取出来变成一个对象,然后把这个对象交给Spring容器去管理。
使用maven依赖管理变更起步依赖项,
Jetty比Tomcat更轻量级,可扩展性更强(相比tomcat)
tomcat(默认):apache出品,应用面广,负载了若干较重的组件
jetty:更轻量级,负载性能远不及tomcat
undertow:负载性能勉强跑赢tomcat
1、内嵌Tomcat服务器是SpringBoot辅助功能之一
2、内嵌Tomcat工作原理是将tomcat服务器作为对象运行,并将该对象交给Spring容器管理
3、变更内嵌服务器思想是去除现有服务器,添加全新的服务器



