Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者
一、为何选择SpringBoot
众所周知,后端框架有许多,比如说在之前学习javaweb时候的struts2,以及spring框架,还有python后端的Django框架,以及我们今天要用的SpringBoot框架。
既然有如此多的后端框架,为什么我们选择的是SpringBoot呢,下面将告诉你SpringBoot的优点。
SpringBoot的优点有:
- 可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
- 内嵌Tomcat或Jetty等Servlet容器;
- 提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
- 尽可能自动配置Spring容器;
- 提供准备好的特性,如指标、健康检查和外部化配置;
- 绝对没有代码生成,不需要XML配置。
所以之前用过其它框架的同学在用SpringBoot后就会发现不需要其它的许多配置,让我们更加关注我们自身的业务代码。
那么,话不多说,用代码来让你们感受一下。
二、项目的创建
首先打开我们的idea集成开发环境,我用的是idea2019,下面是它的启动界面
然后新建立一个SpringBoot项目
接着填写项目的名称,其实需要填写的就是Group和Artifact,那这两个是什么意思呢,其实我们观察下可以发现我们的包的名称其实就是Group+Artifact的名称,在实际开发中有GroupId和ArtifactId这个是Maven用来管理包时作为区分的字段,就像地图上的坐标一样。假设你有一个域名叫baidu.com,那么你想在这个域名下做一个项目,这个项目的名称叫hello,那么Group就是com.baidu,域名反过来写,而Artifact就是叫hello。自然写完这两个你的包名(Package)自然就叫com.baidu.hello。点击Next进入下一步
选择Web,勾选SpringWeb,这里显示的版本是2.1.9,我们点击Next
点击finish,我们完成项目的创建,然后等待项目的初始化,项目构建成功
三、项目目录结构介绍
在介绍项目的目录结构之前,我先介绍几个概念。
- Maven仓库
在我们之前学习JavaWeb的时候,当我们需要相关的jar包的时候我们就会去相关的网 站上把我们需要的包给下载下来,然后把需要用到的jar包放在我们的WebRoot目录下WEB-INF目录下的lib文件夹当中。这种方式我们要自己去找相关的依赖包,然后下载下来,放到指定的位置。这样显得比较麻烦,而且浪费时间。
但是有了Maven仓库之后,这一切就变得方便许多,我们只需要在pom.xml下写上相关的依赖,比如说我需要连接mysql数据库的jar包,那么,我们就需要去pom.xml写这个jar的名称,版本,写好了之后我们的maven工具就会自动的去下载我们需要的jar包,就不需要我们去一个一个找了,这样方便了许多。
- Git
Git是一个版本控制工具和我们所熟知的GitHub是不一样的,那么这个版本控制工具有什么作用呢?我们在开发项目的时候并不是一个人在开发,而是多人协作共同开发(虽然我们致力于做全栈高手),那么一个项目分为许多模块,而且模块之间是有联系的,那这样就无法实现协同开发。但是Git就是能够让你协同开发的一个工具,它能够在你的项目出问题后回退到你之前提交的任何一个版本。它能够实现多人协同开发,比如说,一个项目由A、B、C三个人开发,项目创建好之后A、B、C分别fork这个项目之后就可以写自己的部分,写完之后push过去,当有文件冲突的时候通过git的方式解决。Git的使用我推荐看廖雪峰的Git教程。
好了,介绍完上面的概念之后,我们来开始介绍项目的目录结构。
在我们的项目目录里,src下的main文件夹下放着两个文件夹,一个文件夹是java文件夹,另外一个文件夹是resources文件夹。resources文件夹用来放固定的文件,比如说图片文件、html文件,Thymeleaf模板文件等。然后就是java文件夹下放的就是我们源码,在这里由于我的命名是com.baidu.hello,所以包的名字就是com.baidu.hello。然后就是Test文件夹下的java文件夹,这里可以进行单元测试,然后就是根目录下的一些文件。
四、编写代码
首先在pom.xml文件里添加Thymeleaf的依赖,如下:
<dependency>
<groupId>org.spring.framework.boot </groupId>
<artifactId>spring-boot-starter-thymeleaf </artifactId>
</dependency>
然后在com.baidu.hello下面新建一个叫做Controller的包,然后在这个包里面新建一个HelloController的类,并写下注解,代码如下:
package com.baidu.hello.Controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* 2019.10.9
*/
@Controller
public class HelloController{
@GetMapping( "/hello")
public void hello(@RequestParam(name="name"){
model.addAttribute( "name",name);
}
}
然后我们还要在resources文件夹下的templates文件夹下创建hello.html,代码如下:
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Hello World </title>
</head>
<body>
<p th:text="'Hello,' + ${name} + '!'"/>
</body>
</html>