SpringBoot
是为了简化Spring
应用的创建、运行、调试、部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖就可以轻易的搭建出一个 WEB 工程
没有比较就没有伤害,让我们先看看传统Spring MVC开发一个简单的Hello World Web应用程序,你应该做什么,我能想到一些基本的需求。
- 一个项目结构,其中有一个包含必要依赖的Maven或者Gradle构建文件,最起码要有Spring MVC和Servlet API这些依赖。
- 一个web.xml文件(或者一个WebApplicationInitializer实现),其中声明了Spring的DispatcherServlet。
- 一个启动了Spring MVC的Spring配置
- 一控制器类,以“hello World”相应HTTP请求。
- 一个用于部署应用程序的Web应用服务器,比如Tomcat。
最让人难以接受的是,这份清单里面只有一个东西是和Hello World功能相关的,即控制器,剩下的都是Spring开发的Web应用程序必需的通用模板。
使用 IDEA 直接创建项目
1.创建一个Module,选择类型为Spring Initializr快速构建
2.设置GAV坐标及pom配置信息
3.选择SpringBoot版本及依赖
会根据选择的依赖自动添加起步依赖并进行自动配置
4.设置模块名称、Content Root路径及模块文件的目录
点击Finish,如果是第一次创建,在右下角会提示正在下载相关的依赖
5.项目创建完毕,如下:
项目结构
根据上面的操作已经初始化了一个Spring Boot的框架了,项目结构如下
如你所见,项目里面基本没有代码,除了几个空目录外,还包含如下几样东西。
- pom.xml:Maven构建说明文件。
- Chapter1Application.java:一个带有main()方法的类,用于启动应用程序(关键)。
- Chapter1ApplicationTests.java:一个空的Junit测试类,它加载了一个使用Spring Boot字典配置功能的Spring应用程序上下文。
- application.properties:SpringBoot的配置文件,很多集成的配置都可以在该文件中进行配置,例如:Spring、springMVC、Mybatis、Redis等。目前是空的
- mvn|mvnw|mvnw.cmd:使用脚本操作执行maven相关命令,国内使用较少,可删除
- gitignore:使用版本控制工具git的时候,设置一些忽略提交的内容
- static|templates:后面模板技术中存放文件的目录
解析pom.xml
大家跟我一起移步pom.xml,看看Spring Boot的跟普通Spring MVC工程的Maven配置有啥不一样
可以看出,有几个配置是不大一样的,我们挑几个重要的说说,要是客观不想过早的了解这些,自行跳过这一知识点即可。
Spring Boot父级依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
这块配置就是Spring Boot父级依赖,有了这个,当前的项目就是Spring Boot项目了,spring-boot-starter-parent是一个特殊的sta