电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Spring Boot 入門指南

瀏覽:7日期:2023-07-13 15:25:09
目錄0x0 前言0x1 簡介0x2 Hello World0x3 文件解析pom.xml應用入口類0x4 進階項目目錄編寫單元測試開發環境的調試0x5 參考0x0 前言

記得當初放棄 Java 主要原因是幾個框架整合,花了大半天去編寫配置文件,編寫任務后運行依然有報錯,甚是心累,故轉前端開發了。最近周圍很多 Java 朋友說微服務開發很爽,各種簡單,自己本地體驗下,的確很簡單。所以對此抱有很大的學習興趣。再加上之前使用 Nestjs 項目很像 Spring Boot 風格尋思還不如直接使用它。

0x1 簡介

Spring Boot 是由 Pivotal 團隊提供的全新框架,其設計目的是用來簡化新 Spring 應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。用我的話來理解,就是 Spring Boot 其實不是什么新的框架,它默認配置了很多框架的使用方式,就像 maven 整合了所有的 jar 包,Spring Boot 整合了所有的框架 。

0x2 Hello World

IDE:IntelliJ IDEA 2021.01

JDK:OpenJDK 1.8.0_282

由于我用的是IDEA編輯器,創建環境可以創建Spring Boot項目,當然你可以從 https://start.spring.io/ 根據自身環境直接 Generate Project 生成zip文件進行編寫。

在 IDEA 創建 Spring Boot 操作步驟如下:

在主界面點擊 Create New Project 后左邊列表選擇 Spring Initalizr 選項,右邊選項除了 JDK 安裝自身版本其他默認即可。 點擊 Next 到下一步,編寫項目簡介請根據實際自身情況編寫。沒有特需直接默認下一步。 Dependencies 界面直接勾選 Web-Web 選項即可 直接 Next 下一步后 IDEA 會進行構建依賴 jar 包,請等待完成。 運行 main 方法,打開 http://localhost:8080/ 地址查看效果

Spring Boot 入門指南

0x3 文件解析

如上圖所示,項目目錄解析:

pom.xml:Maven構建說明文件。 DemoApplication.java:一個帶有 main() 方法的類,用于啟動應用程序(關鍵)。 DemoApplicationTests.java:一個空的 Junit 測試類,它加載了一個使用 Spring Boot 字典配置功能的Spring應用程序上下文。 application.properties:一個空的 properties 文件,你可以根據需要添加配置屬性。 pom.xml

Spring Boot父級依賴

在這兒簡單說一下配置標簽的意思很大的程度上和Spring MVC工程配置是不太一樣的:

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.2.RELEASE</version><relativePath/> <!-- lookup parent from repository --> </parent>

從 parent 得知該配置是 Spring Boot 父級依賴:有了這個,當前的項目就是 Spring Boot 項目了,spring-boot-starter-parent 是一個特殊的 starter ,它用來提供相關的 Maven 默認依賴,使用它之后,常用的包依賴可以省去 version 標簽。關于 Spring Boot 提供了哪些 jar 包的依賴,可查看 C:UsersJaxson[你的用戶名].m2repositoryorgspringframeworkbootspring-boot-dependencies2.0.2.RELEASEspring-boot-dependencies-2.0.2.RELEASE.pom文件得知。

所以在原有的配置文件上想升級某個依賴文件版本的話,可以直接 pom 文件添加指定的配置版本,例如:

<properties> <spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version></properties>

起步依賴 spring-boot-starter-xx

Spring Boot 提供了很多”開箱即用“的依賴模塊,都是以 spring-boot-starter-xx 作為命名的。舉個例子來說明一下這個起步依賴的好處,比如組裝臺式機和品牌機,自己組裝的話需要自己去選擇不同的零件,最后還要組裝起來,期間有可能會遇到零件不匹配的問題。耗時又消力,而品牌機就好一點,買來就能直接用的,后續想換零件也是可以的。相比較之下,后者帶來的效果更好點,起步依賴就像這里的品牌機,自動給你封裝好了你想要實現的功能的依賴。就比如我們之前要實現web功能,引入了 spring-boot-starter-web 這個起步依賴。

Spring Boot Maven插件

<build> <plugins><plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId></plugin> </plugins></build> 把項目打包成一個可執行的超級 JAR(uber-JAR) ,包括把應用程序的所有依賴打入 JAR 文件內,并為 JAR 添加一個描述文件,其中的內容能讓你用 java -jar 來運行應用程序。 搜索 public static void main() 方法來標記為可運行類。 應用入口類

DemoApplication是一個啟動類,就是一個程序入口,下面添加一個入口類方法簡單的演示下:

package com.example.demo; import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController; @RestController@SpringBootApplicationpublic class DemoApplication { @RequestMapping('/') public String index() {return 'Hello World'; } public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args); } } @SpringBootApplication 是 Sprnig Boot 項目的核心注解,主要目的是開啟自動配置。 main 方法這是一個標準的 Java 應用的 main 的方法,主要作用是作為項目啟動的入口。 @RestController 注解等價于 @Controller + @ResponseBody 的結合,使用這個注解的類里面的方法都以 json 格式輸出。

啟動后在瀏覽器會看到 Hello World 內容,一個簡單的 Web 的項目就這樣搞定。

0x4 進階項目目錄

在實際項目中建議使用:

com +- example +- myproject +- Application.java | +- domain | +- Customer.java | +- CustomerRepository.java | +- service | +- CustomerService.java | +- web | +- CustomerController.java | Application.java 建議放到跟目錄下面,主要用于做一些框架配置 domain 目錄主要用于實體(Entity)與數據訪問層(Repository) service 邏輯層主要是業務類代碼 web(controller) 負責頁面訪問控制

養成一個目錄清晰結構習慣是必須的...方便后期的維護性和可讀性。

編寫單元測試

同樣測試類編寫是很重要的習慣,在本實例編寫簡單的 http 請求測試,使用 mockmvc 進行,利用MockMvcResultHandlers.print() 打印出執行結果:

package com.example.demo; import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.http.MediaType;import org.springframework.test.context.junit4.SpringRunner;import org.springframework.test.web.servlet.MockMvc;import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;import org.springframework.test.web.servlet.result.MockMvcResultHandlers;import org.springframework.test.web.servlet.result.MockMvcResultMatchers;import org.springframework.test.web.servlet.setup.MockMvcBuilders; @RunWith(SpringRunner.class)@SpringBootTestpublic class DemoApplicationTests { private MockMvc mvc; @Before public void setUp() throws Exception {mvc = MockMvcBuilders.standaloneSetup(new DemoApplication()).build(); } @Test public void contextLoads() throws Exception {mvc.perform(MockMvcRequestBuilders.get('/').accept(MediaType.APPLICATION_JSON)).andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print()).andReturn(); } } 開發環境的調試

熱啟動在正常開發項目中已經很常見了吧,雖然平時開發web項目過程中,改動項目啟重啟總是報錯;但springBoot 對調試支持很好,修改之后可以實時生效,需要添加以下的配置:

<dependencies> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional> </dependency></dependencies><build> <plugins><plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration><fork>true</fork> </configuration></plugin> </plugins></build>

該模塊在完整的打包環境下運行的時候會被禁用。如果你使用 java -jar 啟動應用或者用一個特定的 classloader 啟動,它會認為這是一個“生產環境”。

0x5 參考

Building an Application with Spring Boot

以上就是Spring Boot 入門指南的詳細內容,更多關于Spring Boot 入門的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
主站蜘蛛池模板: 防潮防水通风密闭门源头实力厂家 - 北京酷思帝克门窗 | 钢木实验台-全钢实验台-化验室通风柜-实验室装修厂家-杭州博扬实验设备 | PE拉伸缠绕膜,拉伸缠绕膜厂家,纳米缠绕膜-山东凯祥包装 | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | 山东聚盛新型材料有限公司-纳米防腐隔热彩铝板和纳米防腐隔热板以及钛锡板、PVDF氟膜板供应商 | 游泳池设备安装工程_恒温泳池设备_儿童游泳池设备厂家_游泳池水处理设备-东莞市君达泳池设备有限公司 | 板框压滤机-隔膜压滤机配件生产厂家-陕西华星佳洋装备制造有限公司 | RTO换向阀_VOC高温阀门_加热炉切断阀_双偏心软密封蝶阀_煤气蝶阀_提升阀-湖北霍科德阀门有限公司 | 过滤器_自清洗过滤器_气体过滤器_苏州华凯过滤技术有限公司 | 保定市泰宏机械制造厂-河北铸件厂-铸造厂-铸件加工-河北大件加工 | 扫地车厂家-山西洗地机-太原电动扫地车「大同朔州吕梁晋中忻州长治晋城洗地机」山西锦力环保科技有限公司 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 阻垢剂,反渗透阻垢剂,缓蚀阻垢剂-山东普尼奥水处理科技有限公司 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 塑料瓶罐_食品塑料瓶_保健品塑料瓶_调味品塑料瓶–东莞市富慷塑料制品有限公司 | 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 连续油炸机,全自动油炸机,花生米油炸机-烟台茂源食品机械制造有限公司 | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 细石混凝土泵_厂家_价格-烟台九达机械有限公司 | 塑钢件_塑钢门窗配件_塑钢配件厂家-文安县启泰金属制品有限公司 深圳南财多媒体有限公司介绍 | 室内室外厚型|超薄型|非膨胀型钢结构防火涂料_隧道专用防火涂料厂家|电话|价格|批发|施工 | 阻燃剂-氢氧化镁-氢氧化铝-沥青阻燃剂-合肥皖燃新材料 | 空压机网_《压缩机》杂志 | 新疆散热器,新疆暖气片,新疆电锅炉,光耀暖通公司 | 苗木价格-苗木批发-沭阳苗木基地-沭阳花木-长之鸿园林苗木场 | 快速卷帘门_硬质快速卷帘门-西朗门业 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | 酒水灌装机-白酒灌装机-酒精果酒酱油醋灌装设备_青州惠联灌装机械 | 不锈钢列管式冷凝器,换热器厂家-无锡飞尔诺环境工程有限公司 | 蓝米云-专注于高性价比香港/美国VPS云服务器及海外公益型免费虚拟主机 | 石家庄装修设计_室内家装设计_别墅装饰装修公司-石家庄金舍装饰官网 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 维泰克Veertek-锂电池微短路检测_锂电池腐蚀检测_锂电池漏液检测 | 纳米涂料品牌 防雾抗污纳米陶瓷涂料厂家_虹瓷科技 | 代办建筑资质升级-建筑资质延期就找上海国信启航 | 骁龙云呼电销防封号系统-axb电销平台-外呼稳定『免费试用』 | 盘煤仪,盘料仪,盘点仪,堆料测量仪,便携式激光盘煤仪-中科航宇(北京)自动化工程技术有限公司 | 电机修理_二手电机专家-河北豫通机电设备有限公司(原石家庄冀华高压电机维修中心) | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 | 集菌仪厂家_全封闭_封闭式_智能智能集菌仪厂家-上海郓曹 | 智慧食堂_食堂管理系统_食堂订餐_食堂消费系统—客易捷 |