AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

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

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

來(lái)源: 責(zé)編: 時(shí)間:2024-05-16 17:45:48 173觀看
導(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.5T4428資訊網(wǎng)——每日最新資訊28at.com

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

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

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

測(cè)試T4428資訊網(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é)果T4428資訊網(wǎng)——每日最新資訊28at.com

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

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

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

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

2. SpringApplication外部化配置

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

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

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

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

如果你通過(guò)編程的方式也設(shè)置了上面的屬性,如下:T4428資訊網(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è)置。T4428資訊網(wǎng)——每日最新資訊28at.com

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

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

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

3. 修改配置文件位置&名稱(chēng)

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

  • spring.config.name (SPRING_CONFIG_NAME)默認(rèn)是application為名稱(chēng)
  • 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ě)),如下T4428資訊網(wǎng)——每日最新資訊28at.com

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

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

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

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

4. 激活配置文件

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

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

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

spring:  profiles:    active:    - dev

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

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

spring:  profiles:    default: dev

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

5. 設(shè)置父容器

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

6. 修改默認(rèn)DispatcherServlet路徑

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

spring:  mvc:    servlet:      path: /api

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

對(duì)于DispatcherServlet的定義,我們可以通過(guò)自定義DispatcherServletRegistrationBean bean方式實(shí)現(xiàn)。T4428資訊網(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)更多的自定義配置。T4428資訊網(wǎng)——每日最新資訊28at.com

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

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

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

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

server:  tomcat:    mbeanregistry:      enabled: true

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

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

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

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

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

10. 生成Git信息

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

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

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

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

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

本文鏈接:http://www.tebozhan.com/showinfo-26-88731-0.htmlSpringBoot項(xiàng)目中這十個(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

上一篇: Oracle 數(shù)據(jù)量 150T,PostgreSQL 能搞定嗎?

下一篇: 從零開(kāi)始搭建 Kafka 集群

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • 官方承諾:K60至尊版將會(huì)首批升級(jí)MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版將會(huì)搭載天璣9200+處理器和獨(dú)顯芯片X7的同時(shí),Redmi給出了官方承諾,K60至尊重大更新首批升級(jí),會(huì)首批推送MIUI 15。也就是說(shuō)雖然
  • 5月iOS設(shè)備性能榜:M1 M2依舊是榜單前五

    和上個(gè)月一樣,沒(méi)有新品發(fā)布的iOS設(shè)備性能榜的上榜設(shè)備并沒(méi)有什么更替,僅僅只有跑分變化而產(chǎn)生的排名變動(dòng),剛剛開(kāi)始的蘋(píng)果WWDC2023,推出的產(chǎn)品也依舊是新款Mac Pro、新款Mac Stu
  • JavaScript 混淆及反混淆代碼工具

    介紹在我們開(kāi)始學(xué)習(xí)反混淆之前,我們首先要了解一下代碼混淆。如果不了解代碼是如何混淆的,我們可能無(wú)法成功對(duì)代碼進(jìn)行反混淆,尤其是使用自定義混淆器對(duì)其進(jìn)行混淆時(shí)。什么是混
  • CSS單標(biāo)簽實(shí)現(xiàn)轉(zhuǎn)轉(zhuǎn)logo

    轉(zhuǎn)轉(zhuǎn)品牌升級(jí)后更新了全新的Logo,今天我們用純CSS來(lái)實(shí)現(xiàn)轉(zhuǎn)轉(zhuǎn)的新Logo,為了有一定的挑戰(zhàn)性,這里我們只使用一個(gè)標(biāo)簽實(shí)現(xiàn),將最大化的使用CSS能力完成Logo的繪制與動(dòng)畫(huà)效果。新logo
  • 三分鐘白話(huà)RocketMQ系列—— 如何發(fā)送消息

    我們知道RocketMQ主要分為消息 生產(chǎn)、存儲(chǔ)(消息堆積)、消費(fèi) 三大塊領(lǐng)域。那接下來(lái),我們白話(huà)一下,RocketMQ是如何發(fā)送消息的,揭秘消息生產(chǎn)全過(guò)程。注意,如果白話(huà)中不小心提到相關(guān)代
  • 華為將推出盤(pán)古數(shù)字人大模型 可幫助用戶(hù)12小時(shí)完成數(shù)字人生成

    在今日舉行的2023年華為云數(shù)字文娛AI創(chuàng)新峰會(huì)上,華為云全球Marketing與銷(xiāo)售服務(wù)總裁石冀琳表示,華為云將在后續(xù)推出盤(pán)古數(shù)字人大模型,可幫助用戶(hù)12小
  • 2299元起!iQOO Pad明晚首銷(xiāo):性能最強(qiáng)天璣平板

    5月23日,iQOO如期舉行了新品發(fā)布會(huì),除了首發(fā)安卓最強(qiáng)旗艦處理器的iQOO Neo8系列新機(jī)外,還在發(fā)布會(huì)上推出了旗下首款平板電腦——iQOO Pad,其最大的賣(mài)點(diǎn)
  • 英特爾Xe HPG游戲顯卡:擁有512EU,單風(fēng)扇版本

    據(jù)10 月 30 日外媒 TheVerge 消息報(bào)道,英特爾 Xe HPG Arc Alchemist 的正面實(shí)被曝光,不僅擁有 512 EU 版顯卡,還擁有 128EU 的單風(fēng)扇版本。另外,這款顯卡 PCB
  • AI藝術(shù)欣賞體驗(yàn)會(huì)在上海梅賽德斯奔馳中心音樂(lè)俱樂(lè)部上演

    光影交錯(cuò)的鏡像世界,虛實(shí)幻化的視覺(jué)奇觀,虛擬偶像與真人共同主持,這些場(chǎng)景都出現(xiàn)在2019世界人工智能大會(huì)的舞臺(tái)上。8月29日至31日,“AI藝術(shù)欣賞體驗(yàn)會(huì)”在上海
Top