日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁 > 科技  > 軟件

SpringBoot3基礎(chǔ)用法

來源: 責(zé)編: 時間:2023-08-09 23:03:25 307觀看
導(dǎo)讀一、背景最近在一個輕量級的服務(wù)中,嘗試了最新的技術(shù)和工具選型;即SpringBoot3,JDK17,IDEA2023,Navicat16,雖然新的技術(shù)和工具都更加強大和高效,但是適應(yīng)采坑的過程總是枯燥的;【環(huán)境一覽】圖片首先框架主體從SpringBoot2升級

一、背景

最近在一個輕量級的服務(wù)中,嘗試了最新的技術(shù)和工具選型;U4U28資訊網(wǎng)——每日最新資訊28at.com

即SpringBoot3,JDK17,IDEA2023,Navicat16,雖然新的技術(shù)和工具都更加強大和高效,但是適應(yīng)采坑的過程總是枯燥的;U4U28資訊網(wǎng)——每日最新資訊28at.com

【環(huán)境一覽】U4U28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片U4U28資訊網(wǎng)——每日最新資訊28at.com

首先框架主體從SpringBoot2升級到SpringBoot3,Java基礎(chǔ)環(huán)境從JDK8升級到JDK17;U4U28資訊網(wǎng)——每日最新資訊28at.com

技術(shù)升級都到這步了,自然連帶著工具都升級到最新版本了,涉及到的其他組件,也會選擇與當(dāng)前框架適應(yīng)的版本;U4U28資訊網(wǎng)——每日最新資訊28at.com

至于為何使用JDK17,因為是SpringBoot3的最低依賴,也和官方的維護周期有關(guān);U4U28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片U4U28資訊網(wǎng)——每日最新資訊28at.com

實際上如果JDK21已經(jīng)發(fā)布的話,個人更傾于這個版本,要是沒有合適的嘗試機會,繼續(xù)使用JDK8也問題不大;U4U28資訊網(wǎng)——每日最新資訊28at.com

另外開發(fā)工具IDEA2021.2版本才開始支持JDK17,所以如果版本過低的話也需要升級,至于Navicat16純屬跟風(fēng)操作;U4U28資訊網(wǎng)——每日最新資訊28at.com

二、環(huán)境搭建

1、工程結(jié)構(gòu)

在工程結(jié)構(gòu)上沒有什么變化,通過maven組件構(gòu)建項目,對于入門案例來說,注意框架依賴,啟動類,配置文件即可;U4U28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片U4U28資訊網(wǎng)——每日最新資訊28at.com

2、框架依賴

在該工程中只是SpringBoot3框架的簡單測試,所以只引入web依賴就足夠;U4U28資訊網(wǎng)——每日最新資訊28at.com

<dependencies>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-web</artifactId>        <version>${spring-boot.version}</version>    </dependency></dependencies>

至于Spring框架和其他組件的依賴,順著web依賴追溯即可,核心的依賴和版本都可以找到;U4U28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片U4U28資訊網(wǎng)——每日最新資訊28at.com

3、環(huán)境配置

入門案例,在這里只簡單的配置服務(wù)器和應(yīng)用名稱;U4U28資訊網(wǎng)——每日最新資訊28at.com

server:  port: 8082                # 端口號  tomcat:                   # Tomcat組件    uri-encoding: UTF-8     # URI編碼spring:  application:    name: boot-base

三、入門案例

1、測試接口

提供一個簡單的Get請求接口,使用了部分JDK新版的語法,如果拋出異常會統(tǒng)一處理;U4U28資訊網(wǎng)——每日最新資訊28at.com

@RestControllerpublic class BootBaseWeb {    @GetMapping("/boot/base/{id}")    public Map<String,String> getInfo (@PathVariable String id){        if (id.isBlank() || "0".equals(id)){            throw new RuntimeException("參數(shù)ID錯誤");        }        var dataMap = new HashMap<String,String>();        dataMap.put("id",id);        dataMap.put("boot","base");        return dataMap ;    }}

2、全局異常

基于注解RestControllerAdvice和ExceptionHandler統(tǒng)一異常處理;U4U28資訊網(wǎng)——每日最新資訊28at.com

@RestControllerAdvicepublic class HandlerExe {    @ExceptionHandler(value = Exception.class)    public Map<String,String> handler02 (HttpServletRequest request, Exception e){        var errorMap = new HashMap<String,String>() ;        errorMap.put("code","500");        errorMap.put("url",request.getRequestURL().toString());        errorMap.put("msg",e.getMessage());        return errorMap ;    }}

3、日志打印

3.1 日志配置

在application.yml文件中,簡單的添加日志配置內(nèi)容,然后從日志文件或者控制臺輸出查看相關(guān)信息;U4U28資訊網(wǎng)——每日最新資訊28at.com

logging:  level:    root: info  file:    path: ./    name: logs/${spring.application.name}.log  pattern:    console: "%d{yyyy-MM-dd HH:mm:ss} %contextName [%thread] %-5level %logger- %msg%n"    file: "%d{yyyy-MM-dd HH:mm:ss} %contextName [%thread] %-5level %logger- %msg%n"  logback:    rolling-policy:      max-history: 7      max-file-size: 10MB      total-size-cap: 50MB

3.2 日志打印

雖然采用的是logback組件,但是使用slf4j的API即可;U4U28資訊網(wǎng)——每日最新資訊28at.com

import org.slf4j.Logger;import org.slf4j.LoggerFactory;@RestControllerpublic class BootLogWeb {    private static final Logger LOGGER = LoggerFactory.getLogger(BootBaseWeb.class);    @GetMapping("/boot/print/log")    public String printLog (HttpServletRequest request){        LOGGER.info("remote-host:{}",request.getRemoteHost());        LOGGER.info("request-uri:{}",request.getRequestURI());        return request.getServerName() ;    }}

四、打包運行

打包代碼工程中的m1-01-boot-base子模塊,以及其相關(guān)的依賴;U4U28資訊網(wǎng)——每日最新資訊28at.com

mvn clean -pl m1-01-boot-base -am -Dmaven.test.skip=true package

運行m1-01-boot-base.jar服務(wù),并指定相應(yīng)的端口號為8080,然后測試其中相關(guān)接口查看日志即可;U4U28資訊網(wǎng)——每日最新資訊28at.com

java -jar m1-01-boot-base.jar --server.port=8080

五、參考源碼

文檔倉庫:https://gitee.com/cicadasmile/butte-java-note源碼倉庫:https://gitee.com/cicadasmile/butte-spring-parent

U4U28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-5180-0.htmlSpringBoot3基礎(chǔ)用法

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 五分鐘幫您理解Linux網(wǎng)絡(luò)核心知識點——Socket和Epoll

下一篇: 國產(chǎn)130億參數(shù)大模型免費商用!性能超Llama2-13B,支持8k上下文,哈工大已用上

標(biāo)簽:
  • 熱門焦點
  • 6月安卓手機性價比榜:Note 12 Turbo斷層式碾壓

    6月份有一個618,雖然這是京東周年慶的日子,但別的電商也都不約而同的跟進了,反正促銷沒壞處,廠商和用戶都能滿意。618期間一些產(chǎn)品也出現(xiàn)了歷史低價,那么各個價位段的產(chǎn)品性價比
  • 帥氣純真少年!日本最帥初中生選美冠軍出爐

    日本第一帥哥初一生選美大賽冠軍現(xiàn)已正式出爐,冠軍是來自千葉縣的宗田悠良。日本一直熱衷于各種選美大賽,從&ldquo;最美JK&rdquo;起到&ldquo;最美女星&r
  • Flowable工作流引擎的科普與實踐

    一.引言當(dāng)我們在日常工作和業(yè)務(wù)中需要進行各種審批流程時,可能會面臨一系列技術(shù)和業(yè)務(wù)上的挑戰(zhàn)。手動處理這些審批流程可能會導(dǎo)致開發(fā)成本的增加以及業(yè)務(wù)復(fù)雜度的上升。在這
  • 十個簡單但很有用的Python裝飾器

    裝飾器(Decorators)是Python中一種強大而靈活的功能,用于修改或增強函數(shù)或類的行為。裝飾器本質(zhì)上是一個函數(shù),它接受另一個函數(shù)或類作為參數(shù),并返回一個新的函數(shù)或類。它們通常用
  • 華為發(fā)布HarmonyOS 4:更好玩、更流暢、更安全

    在8月4日的華為開發(fā)者大會2023(HDC.Together)大會上,HarmonyOS 4正式發(fā)布。自2019年發(fā)布以來,HarmonyOS一直以用戶為中心,經(jīng)歷四年多的發(fā)展HarmonyOS已
  • 華為HarmonyOS 4升級計劃公布:首批34款機型今日開啟公測

    8月4日消息,今天下午華為正式發(fā)布了HarmonyOS 4系統(tǒng),在更流暢的前提下,還帶來了不少新功能,UI設(shè)計也有變化,會讓手機煥然一新。華為宣布,首批機型將會在
  • 榮耀Magicbook V 14 2021曙光藍(lán)版本正式開售,擁有觸摸屏

    榮耀 Magicbook V 14 2021 曙光藍(lán)版本正式開售,搭載 i7-11390H 處理器與 MX450 顯卡,配備 16GB 內(nèi)存與 512GB SSD,重 1.48kg,厚 14.5mm,具有 1.5mm 鍵盤鍵程、
  • 蘋果140W USB-C充電器:采用氮化鎵技術(shù)

    據(jù)10 月 30 日 9to5 Mac 消息報道,當(dāng)蘋果推出新的 MacBook Pro 2021 時,該公司還推出了新的 140W USB-C 充電器,附贈在 MacBook Pro 16 英寸機型的盒子里,也支
  • SN570 NVMe SSD固態(tài)硬盤 價格與性能兼具

    SN570 NVMe SSD固態(tài)硬盤是西部數(shù)據(jù)發(fā)布的最新一代WD Blue系列的固態(tài)硬盤,不僅閃存技術(shù)更為精進,性能也得到了進一步的躍升。WD Blue SN570 NVMe SSD的包裝外
Top 主站蜘蛛池模板: 闻喜县| 迁西县| 白城市| 龙井市| 平遥县| 望城县| 缙云县| 彩票| 莲花县| 东乡族自治县| 黑河市| 理塘县| 麻江县| 朝阳市| 广宁县| 湟源县| 兴隆县| 依兰县| 黔西县| 延边| 景洪市| 沛县| 喀什市| 兴仁县| 耿马| 洪泽县| 大洼县| 丹凤县| 兴安盟| 高唐县| 武夷山市| 格尔木市| 阿荣旗| 江永县| 原阳县| 麻江县| 武穴市| 大姚县| 乌鲁木齐县| 波密县| 志丹县|