1.Spring Boot简介:
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
1.1 Spring Boot的特点:
SpringBoot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。
SpringBoot所具备的特征有:
(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器;
(5)提供准备好的特性,如指标、健康检查和外部化配置;
(6)绝对没有代码生成,不需要XML配置。
Spring | Spring Boot |
---|---|
依赖设置繁琐 | 起步依赖(简化依赖配置) |
配置繁琐 | 自动配置(简化常用工程相关配置) |
辅助功能 |
类/配置文件 | Spring | SpringBoot |
---|---|---|
pom文件中的坐标 | 手工添加 | 勾选添加 |
web3.0配置类 | 手工添加 | 无 |
Spring/SpringMVC配置类 | 手工添加 | 无 |
控制器 | 手工添加 | 手工制作 |
注:基于IDEA开发SpringBoot程序需要确保联网且能够加载到程序框架结构 |
2.SpringBoot Parent讲解
入门案例解析
定义一系列的常用坐标版本
<properties>
<druid.version>1.1.16</ druid.version>
<mybatis.version>3.5.6</mybatis.version>
<mysql.version>5.1.47</mysql.version>
<db2.version>1.2.3</ db2.version>
<oracle.version>2.3.4</oracle.version>
<sybase.version>3.4.5</sybase.version>
<dbase.version>4.5.6</ dbase.version>
<foxpro.version>5.6.7</foxpro.version>
<...... version>6.7.8</......version>
</propertiesx>
定义一系列的常用坐标组合
<dependency>
<groupId>com.alibaba</groupId><artifactId>druid< / artifactId>
<version>${druid.version}</version></ dependency>
<dependency>
<groupId>org.mybatis</groupId><artifactId>mybatis< / artifactId>
<version>$imybatis.version}</version></dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java< / artifactId><version>$imysql.version}</version>
</dependency>
直接组合使用
<parent>
<groupId>itheima</groupId>
<artifactId>project-parent< / artifactId><version>1.1.10</version>
</parent>
<parent>
<groupId>itheima</groupId>
<artifactId>project-parent< / artifactId><version>1.1.10</version>
</parent>
小结
- 开发SpringBoot程序要继承spring-boot-starter-parent
- spring-boot-starter-parent中定义了若干个依赖管理
- 继承parent模块可以避免多个依赖使用相同技术时出现依赖版本冲突
- 继承parent的形式也可以采用引入依赖的形式实现效果
3.stater的介绍
starter
SpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到减少依赖配置的目的
parent
所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的
spring-boot-starter-parent各版本间存在着诸多坐标版本不同
实际开发
使用任意坐标时,仅书写GAV(groupId, artifactId, version)中的G和A,V由SpringBoot提供,除非SpringBoot未提供对应版本V
小结:
- 开发SpringBoot程序需要导入坐标时通常导入对应的starter
- 每个不同的starter根据功能不同,通常包含多个依赖坐标
- 使用starter可以实现快速配置的效果,达到简化配置的目的
4.引导类的介绍
启动方式
@SpringBootApplication
public class Springboot0101QuickstartApplication {
public static void main(String[] args) {
ConfigurableApplicationContext ctx = SpringApplication.run(Springboot0101QuickstartApplication.class, args);
//获取bean对象
BookController bean = ctx.getBean(BookController.class);
System.out.println("bean======>" + bean);
}
}
- SpringBoot的引导类是Boot工程的执行入口,运行main方法就可以启动项目
- SpringBoot工程运行后初始化Spring容器,扫描引导类所在包加载bean
小结:
- SpringBoot工程提供引导类用来启动程序
- SpringBoot工程启动后创建并初始化Spring容器