声明
本系列文章系本人原创,欢迎转载,转载请注明出处。
本系列文章通过具体的例子,介绍如何通过Spring Boot来帮助简化Spring MVC开发Web Application的过程,旨在通过具体的实践,使读者能够入门利用Spring Boot开发Web Application。
对于文章中贴出的代码,本人均在本地测试过,如果大家对代码有疑问,欢迎在评论区指出。如果大家发现了文章中描述不对的地方,也欢迎指出,以便大家共同进步。
一、Spring Boot背景
既然是Spring Boot入门,先大概介绍下Spring Boot吧。对于背景不感兴趣的读者可以直接跳到下一节。
先从Spring讲起。很多做过JAVA项目的人估计都知道,项目中存在着很多很复杂的依赖关系,如果对这些依赖关系不加以管理的话,随着Bug的修复,新需求的加入,以及项目的发展,项目会变得越来越维护,尤其是有新同事来负责维护项目的话,新同事很难快速的理解项目的结构以及其中的依赖关系。于是Spring便应运而生,Spring框架可以理解为是一套良好的代码框架与设计模式的集合,通过使用Spring框架,项目内部的依赖关系可以与项目代码解耦,并保存在配置文件(组)中,这使得代码变得简单明了,依赖关系也变得简单明了并易于配置,从而大大降低了项目的维护难度。
那么Spring Boot又是做什么的呢?Spring框架固然有其好处,但是随着项目规模的扩大,配置文件(组)会变得相当庞大,项目中新增或者修改一个功能时,几乎都要从这么庞大的配置文件(组)中去建立或修改相应的配置,这其中的工作量是可想而知的,并且,配置文件(组)的维护此时也变得复杂了。于是Spring Boot便应运而生了。Spring Boot可以看作是利用了与程序员之间的一些“约定”,即当程序员遵循这些约定的时候,Spring Boot便会给出基于这些“约定”的默认的配置,从而减少了程序员在维护配置文件(组)上的工作量。这也是最近很流行的“约定优于配置”(Convention Over Configuration) 思想的体现。
二、工具与环境的搭建
接下来我们将通过Spring Boot建立一个Web Application,并通过浏览器查看运行结果。
工具
本系列文章的项目代码是在Spring Tool Suite上开发的。Spring Tool Suite是一个基于Eclipse的针对Spring开发做了特殊定制的开发环境。读者可以根据个人喜好选择使用Spring Tool Suite或是Eclipse,或者读者喜好的其他开发方式。-
环境的搭建
以Spring Tool Suite为例(Eclipse类似)新建一个Maven Project
一直点“Next”直到输入项目相关信息
双击项目中的”pom.xml”,在编辑区中点”Dependencies”选项卡,然后点“Add”按钮添加Dependency: spring-boot-starter-web
同样的方法添加Dependency: spring-boot-starter-thymeleaf
新建Java类:HelloWorldController和Application;
新建目录:src/main/resources/templates,并在其下新建helloWorld.html
src/main/java/com.example.springboot_demo.HelloWorldController.java :
package com.example.springboot_demo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloWorldController {
@RequestMapping("/")
public String helloWorld(){
return "helloWorld";
}
}
src/main/java/com.example.springboot_demo.Application.java :
package com.example.springboot_demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
src/main/resources/templates/helloWorld.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Welcome.</title>
</head>
<body>
<p>Hello World! This is your first Spring Boot Web Page!</p>
</body>
</html>
三、运行
右击项目,选择”Run As”->”Spring Boot App”
如果弹出提示选择含有main方法的类,则选择我们刚才新建的Application.class, 等控制台停止输出并且没有错误时,打开浏览器,输入localhost:8080后回车,看到如下页面则证明Spring Boot Application已经正常运行。
四、总结
可以看到,通过Spring Boot,我们不需要做太多的配置,只要遵守“约定”,我们便可以只将开发的重点放在代码和具体的业务逻辑上,而Spring Boot便会根据“约定”来设置默认的配置,比如上例中Spring Boot自己从src/main/resources/templates中去找我们需要的html文件等。
看到这里,有些读者可能会对上例中的一些代码、注解(Annotation)或者代码背后Spring帮我们处理的逻辑有些疑问。本系列文章将会在后续的章节中通过具体的例子,陆续地对这些内容做介绍。