java?Spring?Boot的介紹與初體驗(yàn)
Spring Boot 介紹
Spring Boot
用于創(chuàng)建可運(yùn)行的、獨(dú)立的、生產(chǎn)級(jí)的基于Spring
的應(yīng)用程序。Spring Boot
對(duì)Spring
和第三方庫(kù)持約定大于配置的觀念,以便可以輕松上手。大多數(shù)Spring Boot
應(yīng)用程序只需要很少的配置。
Spring Boot
可以通過使用java -jar
或更傳統(tǒng)的war
包部署來啟動(dòng)Java
應(yīng)用程序,Spring Boot
的目標(biāo)是:
為所有Spring
開發(fā)提供從根本上更快且可廣泛訪問的體驗(yàn)。開箱即用。提供一系列大型項(xiàng)目通用的非功能特性(例如嵌入式服務(wù)器、安全性、指標(biāo)、健康檢查和外部化配置)。沒有代碼生成,也不需要XML
配置。
系統(tǒng)要求
Spring Boot 2.6.2
需要Java 8
,并且兼容Java 17
(包括Java 17
),還需要Spring Framework 5.3.14
或更高版本,博主的Spring Boot
系列博客都將基于Spring Boot 2.6.2
,它是目前最新的正式版。
構(gòu)建工具
Spring Boot
為以下構(gòu)建工具提供了顯式構(gòu)建支持:
Maven 3.5+
Gradle 6.8.x 6.9.x 7.x
Servlet 容器
Spring Boot
支持如下圖所示的嵌入式Servlet
容器:
可以將Spring Boot
應(yīng)用程序部署到任何兼容Servlet 3.1+
的容器。
初體驗(yàn)
使用IDEA
創(chuàng)建Spring Boot
應(yīng)用程序,如下圖所示進(jìn)行操作。
使用Spring Initializer
構(gòu)建Spring Boot
項(xiàng)目比較方便,可以讓我們選擇需要的依賴、Spring Boot
版本、語言和打包方式,并且還會(huì)自動(dòng)生成項(xiàng)目常用文件(如配置文件、靜態(tài)文件的包、啟動(dòng)類等)。當(dāng)然也可以使用Maven
構(gòu)建Spring Boot
項(xiàng)目,博主平時(shí)喜歡使用Maven
構(gòu)建項(xiàng)目(自己寫啟動(dòng)類、配置文件和pom.xml
即可,可以讓我們更加熟悉構(gòu)建Spring Boot
項(xiàng)目的流程),Spring Initializer
應(yīng)該也是通過Maven
來構(gòu)建項(xiàng)目,只不過在構(gòu)建項(xiàng)目時(shí)提供了一些便利。
選擇依賴和Spring Boot
版本,博主帶大家體驗(yàn)一下用Spring Boot
編寫一個(gè)接口的方便,因此需要web
依賴(webflux
以后也會(huì)介紹)。
構(gòu)建的Spring Boot
項(xiàng)目的結(jié)構(gòu)如下圖所示:
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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.2</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.kaven</groupId> <artifactId>springboot</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot</name> <description>springboot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
啟動(dòng)類:
package com.kaven.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class SpringbootApplication { public static void main(String[] args) { SpringApplication.run(SpringbootApplication.class, args); } }
@SpringBootApplication
注解是啟動(dòng)類的關(guān)鍵,它會(huì)開啟自動(dòng)配置和組件掃描,大家現(xiàn)在可以不用管這些,以后博主都會(huì)詳細(xì)介紹。SpringApplication.run()
則會(huì)創(chuàng)建和管理應(yīng)用上下文以及打印Banner
等。
啟動(dòng)應(yīng)用,如下圖所示進(jìn)行操作:
啟動(dòng)成功,如下圖所示:
寫一個(gè)Hellow World
接口,根據(jù)習(xí)慣,將接口放在controller
包下。
package com.kaven.springboot.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloWorldController { @GetMapping("/helloworld") public String helloWorld() { return "Hello World"; } }
@RestController
是一個(gè)便利的注解,它組合了@Controller
(帶有此注解的類型被視為控制器)和@ResponseBody
(指示方法的返回值應(yīng)綁定到Web
響應(yīng)的Body
中)注解。@GetMapping("/helloworld")
注解定義了接口處理的請(qǐng)求類型(GET
)和請(qǐng)求路徑(/helloworld
),用于處理請(qǐng)求。
重新啟動(dòng)應(yīng)用,再訪問接口,Spring Boot
應(yīng)用默認(rèn)啟動(dòng)在8080
端口上。
訪問接口時(shí),應(yīng)用的控制臺(tái)也有日志輸出,DispatcherServlet
是一種Servlet
實(shí)現(xiàn),可以用于將請(qǐng)求派發(fā)給指定的控制器中定義的接口,但它的作用不僅如此,以后博主也會(huì)詳細(xì)介紹。
總結(jié)
到此這篇關(guān)于java Spring Boot的介紹與初體驗(yàn)的文章就介紹到這了,更多相關(guān)java Spring Boot內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Java中JDBC事務(wù)與JTA分布式事務(wù)總結(jié)與區(qū)別
- 詳解Java TCC分布式事務(wù)實(shí)現(xiàn)原理
- 淺談Java實(shí)現(xiàn)分布式事務(wù)的三種方案
- 詳解Java分布式事務(wù)的 6 種解決方案
- java springboot郵箱找回密碼功能的實(shí)現(xiàn)講解
- Java SpringBoot實(shí)現(xiàn)文件上傳功能的示例代碼
- SpringBoot整合WxJava開啟消息推送的實(shí)現(xiàn)
- Java全面深入探究SpringBoot攔截器與文件上傳
- 一文搞明白Java?Spring?Boot分布式事務(wù)解決方案
相關(guān)文章
VSCode?配置?Spring?Boot?項(xiàng)目開發(fā)環(huán)境的全過程
兩三年前曾經(jīng)試過配置Java環(huán)境, 存在不少問題作罷. 最近搜了下相關(guān)的文章, 感覺VSCode對(duì)Java項(xiàng)目的支持比三年前完善了不少. 今天實(shí)際配置了一下環(huán)境, 把自己常用的功能過了一遍, 基本能跑通開發(fā)流程, 做個(gè)筆記,需要的朋友可以參考下2024-03-03java實(shí)戰(zhàn)小技巧之優(yōu)雅的實(shí)現(xiàn)字符串拼接
字符串拼接是我們?cè)贘ava代碼中比較經(jīng)常要做的事情,就是把多個(gè)字符串拼接到一起,這篇文章主要給大家介紹了關(guān)于java實(shí)戰(zhàn)小技巧之優(yōu)雅的實(shí)現(xiàn)字符串拼接的相關(guān)資料,需要的朋友可以參考下2021-08-08Springboot之@Async不執(zhí)行原因及分析
這篇文章主要介紹了Springboot之@Async不執(zhí)行原因及分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09Spring?MVC文件請(qǐng)求處理MultipartResolver詳解
這篇文章主要介紹了Spring?MVC文件請(qǐng)求處理詳解:MultipartResolver,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-11-11詳解SpringBoot定制@ResponseBody注解返回的Json格式
這篇文章主要介紹了詳解SpringBoot定制@ResponseBody注解返回的Json格式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11JdbcTemplate方法介紹與增刪改查操作實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于JdbcTemplate方法與增刪改查操作實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用JdbcTemplate具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11