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

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

SpringBoot項(xiàng)目中這10個(gè)開(kāi)發(fā)技巧你都知道嗎?

來(lái)源: 責(zé)編: 時(shí)間:2024-05-16 09:00:19 209觀看
導(dǎo)讀環(huán)境:SpringBoot3.2.51. 使用Maven自動(dòng)擴(kuò)展屬性通過(guò)使用資源過(guò)濾,你可以從 Maven 項(xiàng)目中自動(dòng)擴(kuò)展屬性。如果使用 spring-boot-starter-parent,就可以用 @..@ 占位符引用 Maven "project properties",如下示例:pack: app:

環(huán)境:SpringBoot3.2.50i628資訊網(wǎng)——每日最新資訊28at.com

1. 使用Maven自動(dòng)擴(kuò)展屬性

通過(guò)使用資源過(guò)濾,你可以從 Maven 項(xiàng)目中自動(dòng)擴(kuò)展屬性。如果使用 spring-boot-starter-parent,就可以用 @..@ 占位符引用 Maven "project properties",如下示例:0i628資訊網(wǎng)——每日最新資訊28at.com

pack:  app:    java-version: "java.version@"    springboot-version: "@project.parent.version@"    sourceEncoding: "@project.build.sourceEncoding@"

測(cè)試0i628資訊網(wǎng)——每日最新資訊28at.com

@Value("${pack.app.java-version}")private String javaVersion ;@Value("${pack.app.springboot-version}")private String springBootVersion ;@Value("${pack.app.sourceEncoding}")private String sourceEncoding ;

輸出結(jié)果0i628資訊網(wǎng)——每日最新資訊28at.com

java-version: 17.0.9, springboot-version: 3.2.5, sourceEncoding: UTF-8

maven parent定義如下:0i628資訊網(wǎng)——每日最新資訊28at.com

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

注:在生成環(huán)境下,你將無(wú)法看到上面的輸出結(jié)果,你需要做其它的配置,情況下面的第九條。0i628資訊網(wǎng)——每日最新資訊28at.com

2. SpringApplication外部化配置

可以通過(guò)在 spring.main.* 中設(shè)置屬性來(lái)將配置外部化0i628資訊網(wǎng)——每日最新資訊28at.com

spring:  main:    web-application-type: servlet        banner-mode: off

其它配置屬性如下0i628資訊網(wǎng)——每日最新資訊28at.com

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

如果你通過(guò)編程的方式也設(shè)置了上面的屬性,如下:0i628資訊網(wǎng)——每日最新資訊28at.com

SpringApplication app = new SpringApplication(Application.class) ;app.setWebApplicationType(WebApplicationType.SERVLET) ;app.setBannerMode(Mode.CONSOLE) ;app.run(args) ;

那么配置文件中自定義配置優(yōu)先級(jí)高于代碼中設(shè)置。0i628資訊網(wǎng)——每日最新資訊28at.com

注意看上面的配置屬性,我們還可以之多多個(gè)源配置(其實(shí)就是添加一些配置類而已)。0i628資訊網(wǎng)——每日最新資訊28at.com

spring:  main:    sources:    - com.pack.CustomConfig    - com.pack.AkfConfig

不通過(guò)編碼,之間通過(guò)配置文件像容器中添加2個(gè)配置類。0i628資訊網(wǎng)——每日最新資訊28at.com

3. 修改配置文件位置&名稱

我們可以通過(guò)以下系統(tǒng)屬性(或環(huán)境變量)來(lái)更改行為:0i628資訊網(wǎng)——每日最新資訊28at.com

  • spring.config.name (SPRING_CONFIG_NAME)默認(rèn)是application為名稱
  • spring.config.location (SPRING_CONFIG_LOCATION)要加載的文件(如 classpath 資源或 URL)。為該文件設(shè)置了一個(gè)單獨(dú)的環(huán)境屬性源,它可以被系統(tǒng)屬性、環(huán)境變量或命令行覆蓋。

在應(yīng)用啟動(dòng)時(shí),我們需要制定系統(tǒng)屬性或者對(duì)應(yīng)的環(huán)境變量(上面的大寫(xiě)),如下0i628資訊網(wǎng)——每日最新資訊28at.com

java -Dspring.config.name=app -jar MyApp.jar

指定配置文件的名稱是app,啟動(dòng)時(shí)會(huì)自動(dòng)的加載app.yml或者app.properties配置0i628資訊網(wǎng)——每日最新資訊28at.com

java -Dspring.config.locatinotallow=d:/xxxooo/app.yml -jar MyApp.jar

指定配置文件的路徑。0i628資訊網(wǎng)——每日最新資訊28at.com

4. 激活配置文件

當(dāng)你有如下配置文件時(shí):0i628資訊網(wǎng)——每日最新資訊28at.com

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

除默認(rèn)的applicaiton.yml配置文件外,還有其它針對(duì)不同環(huán)境的配置文件,你可以通過(guò)如下配置激活對(duì)應(yīng)的配置文件:0i628資訊網(wǎng)——每日最新資訊28at.com

spring:  profiles:    active:    - dev

這里設(shè)置dev后上面的配置不僅會(huì)加載默認(rèn)的application.yml還會(huì)加載application-dev.yml配置文件。0i628資訊網(wǎng)——每日最新資訊28at.com

當(dāng)你沒(méi)有激活任何配置時(shí)(沒(méi)有設(shè)置spring.profiles.active),在默認(rèn)情況下會(huì)加載default配置,如:application-default.yml。通過(guò)如下配置修改:0i628資訊網(wǎng)——每日最新資訊28at.com

spring:  profiles:    default: dev

這樣配置后會(huì)加載application-dev.yml配置。0i628資訊網(wǎng)——每日最新資訊28at.com

5. 設(shè)置父容器

在SpringMVC項(xiàng)目中默認(rèn)是有父子容器說(shuō)法,在SpringBoot項(xiàng)目默認(rèn)是沒(méi)有父子容器,不過(guò)我們可以通過(guò)如下方式設(shè)置父子容器。0i628資訊網(wǎng)——每日最新資訊28at.com

SpringApplicationBuilder builder = new SpringApplicationBuilder(Application.class) ;// 這樣設(shè)置后,你當(dāng)前容器將是父容器;child內(nèi)部會(huì)再創(chuàng)建一個(gè)SpringApplicationBuilder同時(shí)設(shè)置是非web項(xiàng)目。builder.child(ChildConfig.class) ;// 這樣設(shè)置后,你當(dāng)前容器將是子容器。builder.parent(ParentConfig.class) ;builder.build().run(args) ;

不管是使用child還是parent,內(nèi)部創(chuàng)建的都是AnnotationConfigApplicationContext容器。0i628資訊網(wǎng)——每日最新資訊28at.com

6. 修改默認(rèn)DispatcherServlet路徑0i628資訊網(wǎng)——每日最新資訊28at.com

默認(rèn)情況下,所有接口訪問(wèn)都從根目錄 (/) 進(jìn)行。你可以按如下修改默認(rèn)的訪問(wèn)路徑:0i628資訊網(wǎng)——每日最新資訊28at.com

spring:  mvc:    servlet:      path: /api

這樣配置后所有的請(qǐng)求都必須是/api/**開(kāi)頭。0i628資訊網(wǎng)——每日最新資訊28at.com

對(duì)于DispatcherServlet的定義,我們可以通過(guò)自定義DispatcherServletRegistrationBean bean方式實(shí)現(xiàn)。0i628資訊網(wǎng)——每日最新資訊28at.com

@Bean(name = DEFAULT_DISPATCHER_SERVLET_REGISTRATION_BEAN_NAME)public DispatcherServletRegistrationBean dispatcherServletRegistration() {  DispatcherServlet dispatcherServlet = new DispatcherServlet() ;  // TODO; dispatcherServlet 相應(yīng)配置  DispatcherServletRegistrationBean registration = new DispatcherServletRegistrationBean(dispatcherServlet,      "/api") ;  registration.setName("dispatcherServlet") ;  registration.setLoadOnStartup(0) ;  return registration ;}

該種方式實(shí)現(xiàn)更多的自定義配置。0i628資訊網(wǎng)——每日最新資訊28at.com

7. 訪問(wèn)日志配置

訪問(wèn)日志可通過(guò) Tomcat、Undertow 和 Jetty 各自的命名空間進(jìn)行配置。如下是對(duì)Tomcat配置。0i628資訊網(wǎng)——每日最新資訊28at.com

server:  tomcat:    basedir: "pack-tomcat"    accesslog:      enabled: true      pattern: "%t %a %r %s (%D microseconds)"

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

日志的默認(rèn)位置是相對(duì)于 Tomcat 基本目錄的日志目錄。默認(rèn)情況下,日志目錄是一個(gè)臨時(shí)目錄,如果你要固定目錄,你可以安裝如上配置,日志位于 pack-tomcat/logs 中,相對(duì)于應(yīng)用程序的工作目錄。0i628資訊網(wǎng)——每日最新資訊28at.com

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

8. 啟用 Tomcat 的 MBean 注冊(cè)表

嵌入式 Tomcat 的 MBean 注冊(cè)表默認(rèn)是禁用的。這最大限度地減少了 Tomcat 的內(nèi)存占用。如果你想使用 Tomcat 的 MBeans,例如讓 Micrometer 使用它們來(lái)公開(kāi)度量指標(biāo),就必須使用 server.tomcat.mbeanregistry.enabled 屬性來(lái)實(shí)現(xiàn),如下例所示:0i628資訊網(wǎng)——每日最新資訊28at.com

server:  tomcat:    mbeanregistry:      enabled: true

開(kāi)啟以后,通過(guò)jconsole查看MBean信息,如下:0i628資訊網(wǎng)——每日最新資訊28at.com

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

在這里你可以查看到Tomcat的各項(xiàng)指標(biāo)信息。0i628資訊網(wǎng)——每日最新資訊28at.com

9. 生成構(gòu)建信息

Maven 插件和 Gradle 插件都允許生成包含項(xiàng)目坐標(biāo)、名稱和版本的構(gòu)建信息。這些插件還可以通過(guò)配置添加其他屬性。當(dāng)存在此類文件時(shí),Spring Boot 會(huì)自動(dòng)配置一個(gè) BuildProperties Bean。0i628資訊網(wǎng)——每日最新資訊28at.com

<plugin>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-maven-plugin</artifactId>  <version>3.2.5</version>  <executions>    <execution>      <goals>          <goal>build-info</goal>      </goals>    </execution>  </executions></plugin>

通過(guò)上面的配置,你在配置文件中使用的@...@就會(huì)得到生效。0i628資訊網(wǎng)——每日最新資訊28at.com

10. 生成Git信息

Maven 和 Gradle 都允許生成一個(gè) git.properties 文件,其中包含項(xiàng)目構(gòu)建時(shí) git 源代碼倉(cāng)庫(kù)的狀態(tài)信息。添加如下插件:0i628資訊網(wǎng)——每日最新資訊28at.com

<plugin>  <groupId>io.github.git-commit-id</groupId>  <artifactId>git-commit-id-maven-plugin</artifactId></plugin>

編譯打包項(xiàng)目后,在你的jar包中的classes下會(huì)包含一個(gè)git.properties信息。內(nèi)容如下(在控制臺(tái)也會(huì)輸出這些信息):0i628資訊網(wǎng)——每日最新資訊28at.com

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

jar包中的classes目錄0i628資訊網(wǎng)——每日最新資訊28at.com

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

本文鏈接:http://m.www897cc.com/showinfo-26-88312-0.htmlSpringBoot項(xiàng)目中這10個(gè)開(kāi)發(fā)技巧你都知道嗎?

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

上一篇: Android:excludeFromRecents屬性使用分析

下一篇: ArkUI如何實(shí)現(xiàn)增刪Tab頁(yè)簽

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • 6月安卓手機(jī)性能榜:vivo/iQOO霸占旗艦排行榜前三

    2023年上半年已經(jīng)正式過(guò)去了,我們也迎來(lái)了安兔兔V10版本,在新的驍龍8Gen3和天璣9300發(fā)布之前,性能榜的榜單大體會(huì)以驍龍8Gen2和天璣9200+為主,至于那顆3.36GHz的驍龍8Gen2領(lǐng)先
  • JavaScript 混淆及反混淆代碼工具

    介紹在我們開(kāi)始學(xué)習(xí)反混淆之前,我們首先要了解一下代碼混淆。如果不了解代碼是如何混淆的,我們可能無(wú)法成功對(duì)代碼進(jìn)行反混淆,尤其是使用自定義混淆器對(duì)其進(jìn)行混淆時(shí)。什么是混
  • 虛擬鍵盤(pán) API 的妙用

    你是否在遇到過(guò)這樣的問(wèn)題:移動(dòng)設(shè)備上有一個(gè)固定元素,當(dāng)激活虛擬鍵盤(pán)時(shí),該元素被隱藏在了鍵盤(pán)下方?多年來(lái),這一直是 Web 上的默認(rèn)行為,在本文中,我們將探討這個(gè)問(wèn)題、為什么會(huì)發(fā)生
  • 零售大模型“干中學(xué)”,攀爬數(shù)字化珠峰

    文/侯煜編輯/cc來(lái)源/華爾街科技眼對(duì)于絕大多數(shù)登山愛(ài)好者而言,攀爬珠穆朗瑪峰可謂終極目標(biāo)。攀登珠峰的商業(yè)路線有兩條,一是尼泊爾境內(nèi)的南坡路線,一是中國(guó)境內(nèi)的北坡路線。相
  • 東方甄選單飛:有些鳥(niǎo)注定是關(guān)不住的

    文/彭寬鴻編輯/羅卿東方甄選創(chuàng)始人俞敏洪帶隊(duì)的&ldquo;7天甘肅行&rdquo;直播活動(dòng)已在近日順利收官。成立后一年多時(shí)間里,東方甄選要脫離抖音自立門(mén)戶的傳聞不絕于耳,&ldquo;7
  • 疑似小米14外觀設(shè)計(jì)圖曝光:后置相機(jī)模組變化不大

    下半年的大幕已經(jīng)開(kāi)啟,而誰(shuí)將成為下半年手機(jī)圈的主角就成為了大家關(guān)注的焦點(diǎn),其中被傳有望拿下新一代驍龍8 Gen3旗艦芯片的小米14系列更是備受大家矚
  • 蘋(píng)果公司要求三星和LG Display生產(chǎn)「無(wú)邊框」OLED iPhone顯示屏

    據(jù) The Elec 報(bào)道,蘋(píng)果已要求其供應(yīng)商為未來(lái)的 iPhone 型號(hào)開(kāi)發(fā)「無(wú)邊框」OLED 顯示面板。蘋(píng)果顯然已要求三星和 LG Display 開(kāi)發(fā)新的 OLED 顯示面
  • iQOO Neo8系列今日官宣:首發(fā)天璣9200+ 全球安卓最強(qiáng)芯!

    在昨日舉行的的聯(lián)發(fā)科新一代旗艦芯片天璣9200+的發(fā)布會(huì)上,iQOO官方也正式宣布,全新的iQOO Neo8系列新品將全球首發(fā)搭載這款當(dāng)前性能最強(qiáng)大的移動(dòng)平臺(tái)
  • OPPO K11樣張首曝:千元機(jī)影像“卷”得真不錯(cuò)!

    一直以來(lái),OPPO K系列機(jī)型都保持著較為均衡的產(chǎn)品體驗(yàn),歷來(lái)都是2K價(jià)位的明星機(jī)型,去年推出的OPPO K10和OPPO K10 Pro兩款機(jī)型憑借各自的出色配置,堪稱有
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
午夜精品久久久久久久99樱桃| 国产老女人精品毛片久久| 久久久精品性| 久久久久久精| 免费日韩成人| 欧美日韩一区二区三| 国产精品美女久久久免费| 国产亚洲精品美女| 亚洲激情综合| 99精品免费视频| 亚洲一区二区影院| 久久电影一区| 欧美aaa级| 欧美激情在线播放| 欧美视频在线视频| 国产在线国偷精品产拍免费yy| 亚洲成人在线| 亚洲一区二区三区在线观看视频| 久久成人这里只有精品| 欧美成人一区在线| 国产精品免费aⅴ片在线观看| 国产最新精品精品你懂的| 亚洲品质自拍| 亚洲欧美欧美一区二区三区| 久久嫩草精品久久久久| 欧美日韩国产精品成人| 国产三级欧美三级| 亚洲精品小视频在线观看| 亚洲欧美日韩精品久久久久 | 久久在线免费观看| 国产精品a久久久久久| 国产精品男人爽免费视频1| **性色生活片久久毛片| 亚洲免费网站| 欧美成人国产| 国产日韩视频| 99国产精品自拍| 久久精品在线视频| 欧美午夜一区二区福利视频| 在线观看一区| 午夜一区在线| 欧美日韩高清免费| 在线观看欧美日韩国产| 亚洲综合不卡| 欧美激情综合在线| 狠狠色丁香久久婷婷综合_中| 亚洲社区在线观看| 欧美福利电影在线观看| 国产欧美一区二区三区国产幕精品| 亚洲精品在线观看视频| 久久久久久久久久看片| 国产精品麻豆成人av电影艾秋| 亚洲人成在线影院| 久久免费视频在线| 国产日韩av高清| 亚洲一区欧美一区| 久久精品一区二区| 国产伦精品一区二区三区免费| 99在线精品视频| 欧美成va人片在线观看| 国产一区白浆| 欧美一级成年大片在线观看| 欧美午夜激情小视频| 亚洲九九九在线观看| 免费观看欧美在线视频的网站| 国产亚洲精久久久久久| 亚洲欧美成人一区二区在线电影| 欧美精品一区二区三区视频| 在线观看av一区| 久久久久久香蕉网| 国内精品嫩模av私拍在线观看| 先锋影音久久久| 国产精品自在线| 亚洲欧美日本精品| 国产精品人成在线观看免费| 亚洲网站在线看| 国产精品v欧美精品v日韩| 一区二区三区国产在线观看| 欧美日韩国产专区| 99精品欧美一区| 欧美日韩精品在线观看| 一区二区三区 在线观看视| 欧美日韩国产区一| 欧美激情精品久久久久久变态| 亚洲国产精品悠悠久久琪琪| 免费观看亚洲视频大全| 亚洲国产精品999| 欧美jjzz| 亚洲精品国产精品乱码不99按摩| 欧美顶级大胆免费视频| 亚洲精品一区在线| 欧美日韩一区二区在线| 99精品国产99久久久久久福利| 欧美激情小视频| 日韩一二三区视频| 欧美精品一区二区三| 亚洲国产天堂久久综合网| 午夜精品影院| 国产亚洲精品一区二区| 先锋影音一区二区三区| 国产欧美日韩在线视频| 欧美一级二级三级蜜桃| 国产日韩欧美一区在线 | 在线观看一区二区精品视频| 久久久99爱| 国产精品日日做人人爱| 久久成人精品电影| 国产亚洲精品一区二555| 欧美一区午夜精品| 国产午夜精品一区二区三区视频 | 国产精品vvv| 亚洲一区二区三区高清 | 亚洲第一色在线| 欧美www在线| 亚洲精品欧美在线| 欧美日韩一区二区在线观看视频| 99综合视频| 国产精品精品视频| 亚洲一区二区三| 国产精品日韩精品欧美精品| 欧美一区二区| 精品白丝av| 欧美高清在线视频观看不卡| 亚洲精品视频在线看| 国产精品第一页第二页第三页| 香蕉久久夜色精品国产使用方法| 国产亚洲福利| 久久伊人亚洲| 亚洲精品永久免费| 国产精品久久久久9999| 欧美有码在线观看视频| 国产亚洲欧洲| 欧美日韩一区二区三区四区五区| 亚洲欧美国产不卡| 激情自拍一区| 欧美日韩国内| 午夜精品久久久久久久久| 好看的日韩视频| 欧美日韩中文在线观看| 欧美在线观看一区二区| 亚洲激情视频在线| 国产精品毛片在线看| 久久九九国产精品| 亚洲精品资源| 国产精品毛片a∨一区二区三区|国| 久久综合99re88久久爱| 野花国产精品入口| 国产一区二区三区免费不卡 | 免费成年人欧美视频| 亚洲视频播放| 韩日成人在线| 欧美日韩理论| 久久精品视频在线免费观看| 亚洲日本电影在线| 国产日韩精品视频一区二区三区| 欧美77777| 亚洲欧美日韩综合一区| 亚洲福利专区| 国产精品一区免费观看| 欧美国产精品v| 欧美在线观看天堂一区二区三区| 亚洲国产精品黑人久久久| 国产区日韩欧美| 欧美精品www在线观看| 欧美一区二区三区另类 | 一色屋精品亚洲香蕉网站| 欧美三区美女| 美女成人午夜| 亚洲在线观看视频| 亚洲国产另类精品专区 | 国产综合网站| 欧美色中文字幕| 蜜臀久久久99精品久久久久久| 亚洲专区一区二区三区| 黄色成人av| 国产一区二区按摩在线观看| 欧美日韩国产在线播放| 米奇777在线欧美播放| 午夜亚洲伦理| 国产精品99久久99久久久二8| 亚洲精品裸体| 亚洲第一区色| 国产中文一区二区| 国产精品老女人精品视频| 欧美—级a级欧美特级ar全黄| 欧美在线视频观看| 欧美伊人久久久久久久久影院 | 日韩一级在线| 亚洲国产一区视频| 好吊一区二区三区| 国产伦精品一区二区三区视频黑人 | 欧美日韩理论| 欧美ed2k| 久久嫩草精品久久久久| 欧美亚洲在线视频| 亚洲伊人第一页| 99在线精品视频在线观看| 在线精品视频免费观看| 国产性色一区二区| 国产日韩欧美不卡| 国产伦精品一区二区三区照片91| 欧美激情一区二区三区全黄| 久久一区二区三区av| 久久国内精品视频|