在這篇文章中,我們將探討使用spring boot創建web應用程序的細節。 我們將探索spring boot如何幫助你加速應用程序開發。
我們將使用spring boot構建一個簡單的web應用程序,并為其添加一些有用的服務。
1. 介紹
啟動一個新項目的主要挑戰之一是該項目的初始設置。 我們需要對不同的目錄結構進行調用,并且需要確保我們遵循所有行業標準。對于使用spring boot創建web應用程序,我們需要以下工具:
- 我們自己喜歡的ide (我將使用intellij)
- maven
- jdk 1.8+
2. 創建項目結構
有多種方式可以使用spring boot initializr為你生成項目結構:
- 使用spring initializr web界面。
- 使用spring boot cli工具。
- 使用你的ide
為了簡化這篇文章,我們使用spring initializer的網頁界面來生成項目結構。
用你的瀏覽器訪問spring initializr web界面,你將看到一個向導來開始你的配置。
你需要填寫網頁界面中的一些信息才能開始。
- 你想要生成什么類型的項目(maven或gradle)
- 你選擇什么語言(除了java,你還可以選擇kotlin或groovy)?
- spring boot版本
- 標準的項目組和工件細節。
- 依賴
依賴是web界面中的一個有趣功能,根據你選擇的依賴,web界面會自動在生成的pom.xml文件中添加spring boot starter依賴。如果你希望對生成的項目結構進行更多控制,或者不確定所有你想要添加到項目中的依賴,請單擊“switch to the full version”按鈕。
在本文中,我們將使用web和thymeleaf(用于用戶界面)兩個starter。
3. 項目結構
spring boot不需要任何特定的代碼布局或結構。我們始終可以遵循spring boot團隊提出的一些最佳實踐,但最終結構將由你的項目需求驅動。
下圖是我們例子應用的項目結構:
4. pom.xml
我們來看看pom.xml文件,詳細地了解spring boot配置。 我將僅涵蓋pom.xml中與spring boot相關的更改。 以下是我們示例項目中的pom.xml文件。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
<?xml version= "1.0" encoding= "utf-8" ?> <project xmlns= "http://maven.apache.org/pom/4.0.0" xmlns:xsi= "http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation= "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" > <modelversion> 4.0 . 0 </modelversion> <groupid>com.javadevjournal</groupid> <artifactid>javadevspringboot</artifactid> <version> 0.0 . 1 -snapshot</version> <packaging>war</packaging> <name>javadevspringboot</name> <description>java dev journal project for spring boot</description> <parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version> 1.5 . 4 .release</version> <relativepath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceencoding>utf- 8 </project.build.sourceencoding> <project.reporting.outputencoding>utf- 8 </project.reporting.outputencoding> <java.version> 1.8 </java.version> </properties> <dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-thymeleaf</artifactid> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-tomcat</artifactid> <scope>provided</scope> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-test</artifactid> <scope>test</scope> </dependency> </dependencies> </project> |
spring boot的主要特性之一是“starter”,它們是在我們的類路徑中添加所需依賴項(jar包)的簡單方法。 當使用spring boot時,我們不必在我們的類路徑中添加jar包或依賴項(如果starter不可用,你可能必須將這些依賴項添加到pom.xml中,或者可以創建自己的自定義starter)。 我們只需要在我們的pom.xml文件中添加正確的“starter”,spring boot將確保自動添加這些依賴。
5. 主應用
如下所示是我們的spring boot應用程序主類,它也是一個spring配置類。 注解@springbootapplication啟用spring上下文以及spring boot的所有啟動魔法。
1
2
3
4
5
6
|
@springbootapplication public class webapplication extends webmvcconfigureradapter { public static void main(string[] args) { springapplication.run(webapplication. class , args); } } |
5. 1 @springbootapplication 注解
@springbootapplication相當于使用@configuration,@enableautoconfiguration和@componentscan以及它們的默認值。如果要開始項目,建議使用這個注解。
在主類中使用@springbootapplication相當于同時使用以下3個注解:
- @configuration作為bean定義的來源。
- @enableautoconfiguration,它為spring boot提供了如何配置應用程序。
- @componentscan自動獲取所有spring組件,包括@configuration類。
5. 2 主方法
我們主類的另一個有趣特點是主方法。 這是遵循標準java工作流程的標準方法。 我們的主類將把控制權交給spring boot springapplication類。
springapplication類的run方法將用于引導一個應用程序。
6. welcome controller
我們設置的最后一部分,我們將創建一個welcome controller,負責通過返回view的名稱(在本例中為“welcome”)處理/greeting的get請求。 視圖負責呈現html內容。
1
2
3
4
5
6
7
8
9
|
import org.springframework.stereotype.controller; import org.springframework.web.bind.annotation.requestmapping; @controller public class welcomecontroller { @requestmapping ( "/welcome" ) public string welcome() { return "welcome" ; } } |
這是一個非常簡單的控制器,但在我們的設置中涵蓋了很多要點。
- @controller注解表示被注解的類是“控制器”(例如web controller)。
- @requestmapping注解可確保將對/welcome的http請求映射到welcome()方法。
- 我們沒有為@requestmapping注解指定任何http方法,因此默認情況下,映射所有http方法。
- 由于我們使用thymeleaf進行視圖技術并從welcome()方法返回“welcome”,因此thymeleaf會解析模板welcome.html并生成輸出。
6. 1 ui template
如下我們簡單的thymeleaf html模板。
1
2
3
4
5
6
7
8
9
|
<!doctype html> <html xmlns:th= "http://www.thymeleaf.org" > <head> <title>getting started: serving web content</title> </head> <body> hello and welcome to our web application </body> </html> |
當使用thymeleaf作為我們的模板引擎時,spring boot將通過在視圖名稱前后加上前綴和后綴(配置參數分別是:spring.thymeleaf.prefix和spring.thymeleaf.suffix,它們的默認的值是:'classpath:/templates/‘和'html')。
7. 運行程序
我們完成了我們簡單的web應用程序,現在是時候運行我們的應用程序了。 盡管可以將此服務作為傳統war文件打包以部署到外部應用程序服務器上,但更簡單的方法是創建獨立應用程序。 要從ide運行我們的應用程序,我們需要將我們的web應用程序作為獨立的java應用程序運行。
- 如果使用maven,我們可以使用mvn spring-boot:run命令運行應用程序。
- 我們可以使用mvn clean package命令構建jar包,并使用java -jar target/demo-app-0.1.0.jar運行這個jar包。
現在,該網站已啟動并正在運行,請訪問 http://localhost:8080/welcome ,如果一切正常,則應在web瀏覽器中輸出以下內容。
hello and welcome to our web application
8. 總結
在這篇文章中,我們學習了使用spring boot創建web應用程序。 spring boot具有許多功能,可以更快,更輕松地創建和運行web應用程序。
原文鏈接: https://www.javadevjournal.com/spring/creating-a-web-application-with-spring-boot/
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:http://szpzs.oschina.io/2018/05/25/creating-a-web-application-with-spring-boot/