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

當前位置:首頁 > 科技  > 軟件

SpringBoot項目中這10個開發(fā)技巧你都知道嗎?

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

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

1. 使用Maven自動擴展屬性

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

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

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

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

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

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

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

2. SpringApplication外部化配置

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4. 激活配置文件

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

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

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

spring:  profiles:    active:    - dev

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

當你沒有激活任何配置時(沒有設置spring.profiles.active),在默認情況下會加載default配置,如:application-default.yml。通過如下配置修改:HXl28資訊網(wǎng)——每日最新資訊28at.com

spring:  profiles:    default: dev

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

5. 設置父容器

在SpringMVC項目中默認是有父子容器說法,在SpringBoot項目默認是沒有父子容器,不過我們可以通過如下方式設置父子容器。HXl28資訊網(wǎng)——每日最新資訊28at.com

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

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

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

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

spring:  mvc:    servlet:      path: /api

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

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

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

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

7. 訪問日志配置

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

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

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

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

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

8. 啟用 Tomcat 的 MBean 注冊表

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

server:  tomcat:    mbeanregistry:      enabled: true

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

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

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

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

Maven 插件和 Gradle 插件都允許生成包含項目坐標、名稱和版本的構(gòu)建信息。這些插件還可以通過配置添加其他屬性。當存在此類文件時,Spring Boot 會自動配置一個 BuildProperties Bean。HXl28資訊網(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>

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

10. 生成Git信息

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

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

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

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

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

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

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

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

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

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

標簽:
  • 熱門焦點
  • vivo TWS Air開箱體驗:真輕 臻好聽

    在vivo S15系列新機的發(fā)布會上,vivo的最新款真無線藍牙耳機vivo TWS Air也一同發(fā)布,本次就這款耳機新品給大家?guī)硪粋€簡單的分享。外包裝盒上,vivo TWS Air保持了vivo自家產(chǎn)
  • 7月安卓手機性能榜:紅魔8S Pro再奪榜首

    7月份的手機市場風平浪靜,除了紅魔和努比亞帶來了兩款搭載驍龍8Gen2領先版處理器的新機之外,別的也想不到有什么新品了,這也正常,通常6月7月都是手機廠商修整的時間,進入8月份之
  • 6月安卓手機性價比榜:Note 12 Turbo斷層式碾壓

    6月份有一個618,雖然這是京東周年慶的日子,但別的電商也都不約而同的跟進了,反正促銷沒壞處,廠商和用戶都能滿意。618期間一些產(chǎn)品也出現(xiàn)了歷史低價,那么各個價位段的產(chǎn)品性價比
  • SpringBoot中使用Cache提升接口性能詳解

    環(huán)境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架從 3.1 開始,對 Spring 應用程序提供了透明式添加緩存的支持。和事務支持一樣,抽象緩存允許一致地使用各
  • 虛擬鍵盤 API 的妙用

    你是否在遇到過這樣的問題:移動設備上有一個固定元素,當激活虛擬鍵盤時,該元素被隱藏在了鍵盤下方?多年來,這一直是 Web 上的默認行為,在本文中,我們將探討這個問題、為什么會發(fā)生
  • 猿輔導與新東方的兩種“歸途”

    作者|卓心月 出品|零態(tài)LT(ID:LingTai_LT)如何成為一家偉大企業(yè)?答案一定是對&ldquo;勢&rdquo;的把握,這其中最關(guān)鍵的當屬對企業(yè)戰(zhàn)略的制定,且能夠站在未來看現(xiàn)在,即使這其中的
  • 三星Galaxy Z Fold/Flip 5國行售價曝光 :最低7499元/12999元起

    據(jù)官方此前宣布,三星將于7月26日也就是明天在韓國首爾舉辦Unpacked活動,屆時將帶來帶來包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
  • 微軟發(fā)布Windows 11新版 引入全新任務欄狀態(tài)

    近日,微軟發(fā)布了Windows 11新版,而Build 22563更新主要引入了幾周前曝光的平板模式任務欄等,系統(tǒng)更流暢了。更新中,Windows 11加入了專門針對平板優(yōu)化的任務欄
  • 親歷馬斯克血洗Twitter,硅谷的苦日子在后頭

    文/劉哲銘  編輯/李薇  馬斯克再次揮下裁員大刀。  美國時間11月14日,Twitter約4400名外包員工遭解雇,此次被解雇的員工的主要工作為內(nèi)容審核等。此前,T
Top 主站蜘蛛池模板: 泾源县| 湖州市| 扬州市| 湛江市| 韩城市| 来宾市| 辉南县| 六安市| 绍兴县| 靖边县| 金乡县| 东宁县| 高平市| 卢氏县| 理塘县| 定襄县| 遵义县| 喀喇| 舟山市| 鲁甸县| 乐亭县| 北宁市| 讷河市| 大田县| 本溪市| 通州市| 姜堰市| 大化| 正定县| 玉门市| 郁南县| 杨浦区| 台安县| 日土县| 玉环县| 张家口市| 射洪县| 兴化市| 富民县| 莱州市| 子洲县|