使用Spring Boot創(chuàng)建Web應(yīng)用程序的示例代碼
在這篇文章中,我們將探討使用Spring Boot創(chuàng)建Web應(yīng)用程序的細(xì)節(jié)。 我們將探索Spring Boot如何幫助你加速應(yīng)用程序開發(fā)。
我們將使用Spring Boot構(gòu)建一個簡單的Web應(yīng)用程序,并為其添加一些有用的服務(wù)。
1. 介紹
啟動一個新項目的主要挑戰(zhàn)之一是該項目的初始設(shè)置。 我們需要對不同的目錄結(jié)構(gòu)進行調(diào)用,并且需要確保我們遵循所有行業(yè)標(biāo)準(zhǔn)。對于使用Spring Boot創(chuàng)建Web應(yīng)用程序,我們需要以下工具:
- 我們自己喜歡的IDE (我將使用IntelliJ)
- Maven
- JDK 1.8+
2. 創(chuàng)建項目結(jié)構(gòu)
有多種方式可以使用Spring Boot Initializr為你生成項目結(jié)構(gòu):
- 使用Spring Initializr Web界面。
- 使用Spring Boot CLI工具。
- 使用你的IDE
為了簡化這篇文章,我們使用Spring Initializer的網(wǎng)頁界面來生成項目結(jié)構(gòu)。
用你的瀏覽器訪問Spring Initializr Web界面,你將看到一個向?qū)黹_始你的配置。
你需要填寫網(wǎng)頁界面中的一些信息才能開始。
- 你想要生成什么類型的項目(Maven或Gradle)
- 你選擇什么語言(除了Java,你還可以選擇Kotlin或Groovy)?
- Spring Boot版本
- 標(biāo)準(zhǔn)的項目組和工件細(xì)節(jié)。
- 依賴
依賴是Web界面中的一個有趣功能,根據(jù)你選擇的依賴,Web界面會自動在生成的pom.xml文件中添加Spring Boot Starter依賴。如果你希望對生成的項目結(jié)構(gòu)進行更多控制,或者不確定所有你想要添加到項目中的依賴,請單擊“Switch to the full version”按鈕。
在本文中,我們將使用Web和Thymeleaf(用于用戶界面)兩個Starter。
3. 項目結(jié)構(gòu)
Spring Boot不需要任何特定的代碼布局或結(jié)構(gòu)。我們始終可以遵循Spring Boot團隊提出的一些最佳實踐,但最終結(jié)構(gòu)將由你的項目需求驅(qū)動。
下圖是我們例子應(yīng)用的項目結(jié)構(gòu):
4. pom.xml
我們來看看pom.xml文件,詳細(xì)地了解Spring Boot配置。 我將僅涵蓋pom.xml中與Spring Boot相關(guān)的更改。 以下是我們示例項目中的pom.xml文件。
<?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包)的簡單方法。 當(dāng)使用Spring Boot時,我們不必在我們的類路徑中添加jar包或依賴項(如果starter不可用,你可能必須將這些依賴項添加到pom.xml中,或者可以創(chuàng)建自己的自定義starter)。 我們只需要在我們的pom.xml文件中添加正確的“Starter”,Spring Boot將確保自動添加這些依賴。
5. 主應(yīng)用
如下所示是我們的Spring Boot應(yīng)用程序主類,它也是一個Spring配置類。 注解@SpringBootApplication啟用Spring上下文以及Spring Boot的所有啟動魔法。
@SpringBootApplication public class WebApplication extends WebMvcConfigurerAdapter { public static void main(String[] args) { SpringApplication.run(WebApplication.class, args); } }
5. 1 @SpringBootApplication 注解
@SpringBootApplication相當(dāng)于使用@Configuration,@EnableAutoConfiguration和@ComponentScan以及它們的默認(rèn)值。如果要開始項目,建議使用這個注解。
在主類中使用@SpringBootApplication相當(dāng)于同時使用以下3個注解:
- @Configuration作為bean定義的來源。
- @EnableAutoConfiguration,它為Spring Boot提供了如何配置應(yīng)用程序。
- @ComponentScan自動獲取所有Spring組件,包括@Configuration類。
5. 2 主方法
我們主類的另一個有趣特點是主方法。 這是遵循標(biāo)準(zhǔn)Java工作流程的標(biāo)準(zhǔn)方法。 我們的主類將把控制權(quán)交給Spring Boot SpringApplication類。
SpringApplication類的run方法將用于引導(dǎo)一個應(yīng)用程序。
6. Welcome Controller
我們設(shè)置的最后一部分,我們將創(chuàng)建一個welcome controller,負(fù)責(zé)通過返回View的名稱(在本例中為“welcome”)處理/greeting的GET請求。 視圖負(fù)責(zé)呈現(xiàn)HTML內(nèi)容。
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class WelcomeController { @RequestMapping("/welcome") public String welcome() { return "welcome"; } }
這是一個非常簡單的控制器,但在我們的設(shè)置中涵蓋了很多要點。
- @Controller注解表示被注解的類是“控制器”(例如Web controller)。
- @RequestMapping注解可確保將對/welcome的HTTP請求映射到welcome()方法。
- 我們沒有為@RequestMapping注解指定任何HTTP方法,因此默認(rèn)情況下,映射所有HTTP方法。
- 由于我們使用Thymeleaf進行視圖技術(shù)并從welcome()方法返回“welcome”,因此Thymeleaf會解析模板welcome.html并生成輸出。
6. 1 UI Template
如下我們簡單的Thymeleaf HTML模板。
<!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>
當(dāng)使用Thymeleaf作為我們的模板引擎時,Spring Boot將通過在視圖名稱前后加上前綴和后綴(配置參數(shù)分別是:spring.thymeleaf.prefix和spring.thymeleaf.suffix,它們的默認(rèn)的值是:'classpath:/templates/‘和'html')。
7. 運行程序
我們完成了我們簡單的Web應(yīng)用程序,現(xiàn)在是時候運行我們的應(yīng)用程序了。 盡管可以將此服務(wù)作為傳統(tǒng)WAR文件打包以部署到外部應(yīng)用程序服務(wù)器上,但更簡單的方法是創(chuàng)建獨立應(yīng)用程序。 要從IDE運行我們的應(yīng)用程序,我們需要將我們的Web應(yīng)用程序作為獨立的Java應(yīng)用程序運行。
- 如果使用Maven,我們可以使用mvn spring-boot:run命令運行應(yīng)用程序。
- 我們可以使用mvn clean package命令構(gòu)建Jar包,并使用java -jar target/demo-app-0.1.0.jar運行這個jar包。
現(xiàn)在,該網(wǎng)站已啟動并正在運行,請訪問 http://localhost:8080/welcome ,如果一切正常,則應(yīng)在Web瀏覽器中輸出以下內(nèi)容。
Hello and Welcome to our Web Application
8. 總結(jié)
在這篇文章中,我們學(xué)習(xí)了使用Spring Boot創(chuàng)建Web應(yīng)用程序。 Spring Boot具有許多功能,可以更快,更輕松地創(chuàng)建和運行Web應(yīng)用程序。
原文鏈接: https://www.javadevjournal.com/spring/creating-a-web-application-with-spring-boot/
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
IntelliJ IDEA 2018 最新激活碼(截止到2018年1月30日)
這篇文章主要介紹了IntelliJ IDEA 2018 最新激活碼(截止到2018年1月30日)的相關(guān)資料,需要的朋友可以參考下2018-01-01Java?Chassis3熔斷機制的改進路程技術(shù)解密
這篇文章主要介紹了Java?Chassis?3技術(shù)解密之熔斷機制的改進路程實例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2024-01-01Java實現(xiàn)導(dǎo)出word表格的示例詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Java語言導(dǎo)出word表格功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價值,需要的小伙伴可以參考一下2022-12-12mybatis-flex與springBoot整合的實現(xiàn)示例
Mybatis-flex提供了簡單易用的API,開發(fā)者只需要簡單的配置即可使用,本文主要介紹了mybatis-flex與springBoot整合,具有一定的參考價值,感興趣的可以了解一下2024-01-01Spring探秘之如何妙用BeanPostProcessor
BeanPostProcessor也稱為Bean后置處理器,它是Spring中定義的接口,在Spring容器的創(chuàng)建過程中會回調(diào)BeanPostProcessor中定義的兩個方法,這篇文章主要給大家介紹了關(guān)于Spring探秘之如何妙用BeanPostProcessor的相關(guān)資料,需要的朋友可以參考下2022-01-01