SpringBoot概述
SpringBoot的设计目的是简化Spring应用的初始搭建和开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不需要定义样板化的配置。
在以往采用SpringMVC+Spring+MyBatis开发时,搭建和整合三大框架,需要做很多工作,配置web.xml。配置Spring和MyBatis。而SpringBoot框架对此开发过程进行了革命性颠覆,完全抛弃了繁琐的xml配置过程,采用大量默认配置来简化开发过程。
SpringBoot特性
SpringBoot有这些特性:
- 能够快速创建基于Spring的应用程序
- 能够直接使用java的main方法启动内嵌的Tomcat服务器运行SpringBoot程序,不用部署war包
- 提供约定的starter POM来简化Maven配置,使Maven配置更简单
- 自动化配置,根据项目Maven依赖配置,SpringBoot自动配置Spring、SpringMVC。
- 提供了程序的健康检查功能
- 基本不使用XML配置文件,采用注解配置
SpringBoot有四大核心:
- 自动配置:针对很多Spring常见的功能,SpringBoot能自动提供相关配置
- 起步依赖,在创建SpringBoot项目时,告诉SpringBoot需要什么功能, 它就会自动引入相关依赖库
- Actuator:能够深入运行中的SpringBoot应用程序,一探SpringBoot程序内部信息
- 命令行界面:这是SpringBoot的可选特性,主要针对Groovy语言使用。
第一个SpringBoot项目
使用IDEA来创建SpringBoot项目,使用Spring Initializr来创建SpringBoot项目。可以使用默认的https://start.spring.io
,也可以使用阿里提供的http://start.aliyun.com
。
jdk版本要大于8。
点击Next:
其中:
- Group和Artifact和Maven配置一样。
- Packaging是用来设定打包方式,默认使用jar
- Package指定SpringBoot启动类所在的包路径
点击Next:
在此处添加所需要的依赖。
然后下一步来设置模块名称,Content root的根路径和模块文件的根路径。就创建成功了。
SpringBoot的pom文件:
1 |
|
项目目录结构:
- mvn、mvnw、mvnw.cmd:使用脚本执行maven相关命令,用的较少,可以删除
- gitignore:使用版本控制工具git时,设置忽略提交的内容
- static、templates:后面模板技术存放文件的目录
- application.properties:SpringBoot 的配置文件,集成的配置都可以在该文件中进行配置,例如Spring、SpringMVC、MyBatis和Redis等。
- Application.java:SpringBoot程序执行入口,执行该程序中main方法,SpringBoot就启动了。
SpringBoot项目代码要放在Application类的同级目录或下级目录中。
即contoller、entity、dao、service、exception等包要和Application类放在同一级或下级目录中,并通过注解来设置。
一般在Application类同级目录创建一个web包,把所有代码放在web包中。
在web包下创建一个控制器,仍然使用@Controller注解:
1 |
|
在DemoApplication运行main方法,启动该项目。
需要注意的几个地方
SpringBoot的父级依赖spring-boot-starter-parent配置之后,当前项目是一个SpringBoot项目。
spring-boot-starter-parent是一个SpringBoot 的父级依赖,开发SpringBoot程序都需要继承该父级项目,它用来提供相关Maven的默认依赖,使用它之后,常用的jar依赖可以省去version配置。
SpringBoot提供了哪些默认jar包的依赖,可以查看该父级依赖的pom文件
如果不想使用默认的依赖版本,可以通过pom文件属性配置覆盖各个依赖项,比如覆盖spring版本:
1
2
3<properties>
<spring.version>5.0.0.RELEASE</spring.version>
</properties>@SpringBootApplication注解是SpringBoot的核心注解,主要的作用是开启Spring自动配置
main方法是标准的Java程序的main方法,作为项目启动运行的入口
@Controller及@ResponseBody仍然是之前学过的SpringMVC,因为SpringBoot里面仍然使用的是SpringMVC、Spring和MyBatis等框架。