Spring Boot相关概念
前面的JavaWeb项目的例子,几乎全部基于Spring。Spring对于JavaWeb开发确实是一场革命性的进步,把开发者从EJB的重量级中解放出来。Spring为大多数业务场景都提供了解决方案,但Spring还是需要很多配置和依赖,特别是依赖,如果版本不兼容,还可能会产生一些很难检查出来的异常。不是说这些库的设计者不想兼容,而是有时候项目太过复杂,并不能兼容所有的前期项目,Spring Boot就是为解决Spring的依赖配置复杂而设计的。
Spring Boot拥有如下特点:
1.可以创建独立的Spring应用程序
2嵌入式Tomcat,不需要部署WAR文件,这表示项目中不再需要配置Tomcat,也不需要把WAR包导入到Tomcat的webapps目录下才能运行项目。
3.简化Maven,pom文件大部分内容都是描述依赖,几乎每一个库都要有一个dependency,而库与库可能还要产生依赖,还要确定库依赖的版本。Spring Boot简化了这些配置,让开发人员可以把更多的工作重心放在业务实现上,而不是项目配置上。
4.自动化配置Spring,此前在使用Spring时,都是在Spring的配置文件中配置了很多数据库、视图解析或者事务管理,但Spring Boot可以帮我们尽量减少这些配置项,使项目具有更好的可理解性。
5.提供基本起步依赖,让项目的创建更加简单,比如想要创建一个Spring MVC的项目,如果用Spring Boot的话,直接添加Spring Web的起步依赖即可,这样项目开发更高效。
6.Actuator功能,可以让开发人员观测到Spring Boot应用运行内部的情况。比如可以查看Spring的bean对象,Http请求,线程状态以及JVM的内存使用情况和垃圾回收情况。
使用Intellij IDEA可以非常轻松地构建一个Spring Boot项目,在New Project中选择Spring Initializer
然后跟Maven一样填写Group和Artifact
下一步就可以选择起步依赖了,这里Intellij IDEA提供了很多起步依赖
这里选择一个最基本的Web项目,选择左边的Web,再勾选右边的Web就可以完成一个Web项目的创建了。
创建成功后,Spring Boot已经在Maven中添加了一些依赖
并且已经创建好了Maven工程,
如果想添加其他依赖,直接在pom.xml文件中添加起步依赖就好,Spring Boot已经封装好了一些框架所需要的依赖
而要运行这个Web项目,只需要把SpringBootStudyApplication类的main方法运行起来即可,因为没有写任务Web服务,所以不能请求
然后我们在pom.xml文件中添加thymeleaf模板的spring boot起步依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
Reimport maven之后,
再在resources的application.properties文件中添加如下配置
server.port=8888 spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.suffix=.html在java的包目录下添加一controller包,再在其中添加一个Controller
package com.benson.spring_boot_study.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class TestController {
@RequestMapping(value = "/index")
public String index(){
System.out.println("index");
return "index";
}
}
在resources的templates目录中添加index.html文件,
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>index</title>
</head>
<body>
index
</body>
</html>
在浏览器中访问localhost:8888/index就可以访问到TestController中的index方法,并且页面转向index.html