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>
<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
*/
public class HelloController {
( "/hello")
public void hello(@RequestParam(name="name") String name, Model model){
model.addAttribute( "name",name);
}
}
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
*/
public class HelloController {
( "/hello")
public void hello(@RequestParam(name="name") String name, Model model){
model.addAttribute( "name",name);
}
}
然后我們還要在resources文件夾下的templates文件夾下創建hello.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>
五、運行結果
運行
HelloApplication.java之后,打開瀏覽器輸入localhost:8080/hello?name=城南有夢,結果如下:
