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

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

SpringBoot項目中這十個開發技巧,你都知道嗎?

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

環境:SpringBoot3.2.5xuo28資訊網——每日最新資訊28at.com

1. 使用Maven自動擴展屬性

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

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

測試xuo28資訊網——每日最新資訊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 ;

輸出結果xuo28資訊網——每日最新資訊28at.com

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

maven parent定義如下:xuo28資訊網——每日最新資訊28at.com

圖片圖片xuo28資訊網——每日最新資訊28at.com

注:在生成環境下,你將無法看到上面的輸出結果,你需要做其它的配置,情況下面的第九條。xuo28資訊網——每日最新資訊28at.com

2. SpringApplication外部化配置

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

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

其它配置屬性如下xuo28資訊網——每日最新資訊28at.com

圖片圖片xuo28資訊網——每日最新資訊28at.com

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

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

那么配置文件中自定義配置優先級高于代碼中設置。xuo28資訊網——每日最新資訊28at.com

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

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

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

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

我們可以通過以下系統屬性(或環境變量)來更改行為:xuo28資訊網——每日最新資訊28at.com

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

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

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

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

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

指定配置文件的路徑。xuo28資訊網——每日最新資訊28at.com

4. 激活配置文件

當你有如下配置文件時:xuo28資訊網——每日最新資訊28at.com

圖片圖片xuo28資訊網——每日最新資訊28at.com

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

spring:  profiles:    active:    - dev

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

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

spring:  profiles:    default: dev

這樣配置后會加載application-dev.yml配置。xuo28資訊網——每日最新資訊28at.com

5. 設置父容器

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

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

不管是使用child還是parent,內部創建的都是AnnotationConfigApplicationContext容器。xuo28資訊網——每日最新資訊28at.com

6. 修改默認DispatcherServlet路徑

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

spring:  mvc:    servlet:      path: /api

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

對于DispatcherServlet的定義,我們可以通過自定義DispatcherServletRegistrationBean bean方式實現。xuo28資訊網——每日最新資訊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 ;}

該種方式實現更多的自定義配置。xuo28資訊網——每日最新資訊28at.com

7. 訪問日志配置

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

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

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

8. 啟用 Tomcat 的 MBean 注冊表

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

server:  tomcat:    mbeanregistry:      enabled: true

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

圖片圖片xuo28資訊網——每日最新資訊28at.com

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

9. 生成構建信息

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

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

10. 生成Git信息

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

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

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

圖片圖片xuo28資訊網——每日最新資訊28at.com

jar包中的classes目錄xuo28資訊網——每日最新資訊28at.com

圖片圖片xuo28資訊網——每日最新資訊28at.com

xuo28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-88731-0.htmlSpringBoot項目中這十個開發技巧,你都知道嗎?

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

上一篇: Oracle 數據量 150T,PostgreSQL 能搞定嗎?

下一篇: 從零開始搭建 Kafka 集群

標簽:
  • 熱門焦點
  • 盧偉冰長文解析K60至尊版 對Redmi有著里程碑式的意義

    在今天的Redmi后性能時代戰略發布會結束之后,Redmi總經理盧偉冰又帶來了一篇長文,詳解了為什么 Redmi 要開啟后性能時代?為什么選擇和 MediaTek、Pixelworks 深度合作?以及后性
  • Redmi Pad評測:紅米充滿野心的一次嘗試

    從Note系列到K系列,從藍牙耳機到筆記本電腦,紅米不知不覺之間也已經形成了自己頗有競爭力的產品體系,在中端和次旗艦市場上甚至要比小米新機的表現來得更好,正所謂“大丈夫生居
  • 太卷!Redmi MAX 100英寸電視便宜了:12999元買Redmi史上最大屏

    8月5日消息,從小米商城了解到,Redmi MAX 100英寸巨屏電視日前迎來官方優惠,到手價12999元,比發布價便宜了7000元,在大屏電視市場開卷。據了解,Redmi MAX 100
  • K8S | Service服務發現

    一、背景在微服務架構中,這里以開發環境「Dev」為基礎來描述,在K8S集群中通常會開放:路由網關、注冊中心、配置中心等相關服務,可以被集群外部訪問;圖片對于測試「Tes」環境或者
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準追劇女孩們的古偶劇集,2021年有優酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 消費結構調整丨巨頭低價博弈,拼多多還卷得動嗎?

    來源:征探財經作者:陳香羽隨著流量紅利的退潮,電商的存量博弈越來越明顯。曾經主攻中高端與品質的淘寶天貓、京東重拾&ldquo;低價&rdquo;口號。而過去與他們錯位競爭的拼多多,靠
  • 阿里瓴羊One推出背后,零售企業迎數字化新解

    作者:劉曠近年來隨著數字經濟的高速發展,各式各樣的SaaS應用服務更是層出不窮,但本質上SaaS大多局限于單一業務流層面,對用戶核心關切的增長問題等則沒有提供更好的解法。在Saa
  • 三星獲批量產iPhone 15全系屏幕:蘋果史上最驚艷直屏

    按照慣例,蘋果將繼續在今年9月舉辦一年一度的秋季新品發布會,有傳言稱發布會將于9月12日舉行,屆時全新的iPhone 15系列將正式與大家見面,不出意外的話
  • 聯想的ThinkBook Plus下一版曝光,鍵盤旁邊塞個平板

    ThinkBook Plus 是聯想的一個特殊筆記本類別,它在封面放入了一塊墨水屏,也給人留下了較為深刻的印象。據有人爆料,聯想的下一款 ThinkBook Plus 可能更特殊,它
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
亚洲人成在线播放| 欧美体内she精视频在线观看| 午夜精品久久久久久久蜜桃app| 亚洲视频自拍偷拍| 欧美一级片久久久久久久| 久久精品视频一| 欧美高清在线视频| 国产精品久久久一区二区三区| 国产精品视频你懂的| 一区二区在线看| 一本色道久久综合精品竹菊| 亚洲专区国产精品| 久久在线视频在线| 欧美日一区二区在线观看| 欧美日韩久久久久久| 国产日韩欧美成人| 亚洲乱亚洲高清| 欧美在线看片a免费观看| 麻豆国产精品777777在线| 欧美日韩国产一区| 国产在线精品二区| 一本色道**综合亚洲精品蜜桃冫| 久久er精品视频| 欧美日韩色婷婷| 狠狠色香婷婷久久亚洲精品| 一区二区三区高清不卡| 久久夜色精品国产欧美乱| 国产精品二区在线| 亚洲国产婷婷综合在线精品 | 黄色国产精品| 一区二区三区久久网| 久久精品一区二区| 国产精品jizz在线观看美国 | 欧美精品一区二区蜜臀亚洲| 国产手机视频一区二区| 99国产精品自拍| 久久免费视频网| 国产精品成人在线| 亚洲经典视频在线观看| 久久精品女人天堂| 国产精品萝li| 亚洲精品午夜精品| 久久中文字幕一区二区三区| 国产欧美日韩专区发布| 一区二区日韩欧美| 欧美91大片| 伊人久久大香线蕉综合热线| 羞羞答答国产精品www一本| 欧美日韩午夜剧场| 亚洲人成网站在线观看播放| 卡一卡二国产精品| 国产一区二区三区久久久久久久久 | 欧美伦理在线观看| 在线成人激情黄色| 欧美一区二区三区四区视频| 欧美视频在线观看一区| 亚洲精品久久久蜜桃| 欧美99在线视频观看| **网站欧美大片在线观看| 久久国产精品99久久久久久老狼| 欧美视频免费| 99国产精品久久久久老师| 欧美二区在线观看| 亚洲电影免费在线观看| 久久深夜福利| 一区二区亚洲| 久久亚洲免费| 狠狠狠色丁香婷婷综合激情| 欧美一区亚洲一区| 国产伦精品一区二区三区在线观看| 在线一区二区三区做爰视频网站| 欧美精品三级| 亚洲精品乱码久久久久久黑人| 能在线观看的日韩av| 在线观看欧美一区| 玖玖玖国产精品| 在线观看亚洲a| 老鸭窝毛片一区二区三区| 一区二区在线观看视频| 久久在线免费| 亚洲国内精品| 欧美久久久久免费| 一区二区不卡在线视频 午夜欧美不卡'| 欧美日本视频在线| 99精品欧美一区二区三区| 欧美日韩成人激情| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美午夜无遮挡| 一区二区三区偷拍| 国产精品igao视频网网址不卡日韩| 一本一本大道香蕉久在线精品| 欧美视频导航| 小处雏高清一区二区三区| 国产欧美一区二区三区在线老狼| 欧美一区二区三区四区视频| 国产在线精品成人一区二区三区| 久久久久欧美精品| 在线欧美视频| 欧美激情一区二区久久久| 一区二区三区.www| 国产精品午夜春色av| 欧美一级理论片| 黄色成人在线| 欧美精品尤物在线| 亚洲一区二区三区精品动漫| 国产欧美日韩精品一区| 久久久久久久波多野高潮日日| 玉米视频成人免费看| 欧美国产一区视频在线观看| 亚洲视频在线一区观看| 国产欧美一区二区三区在线看蜜臀| 久久久久一区二区三区| 亚洲国产你懂的| 欧美日韩在线三区| 午夜宅男欧美| 亚洲国产清纯| 欧美午夜激情视频| 欧美在线视频免费播放| 在线日韩视频| 欧美视频福利| 久久精品国产亚洲高清剧情介绍| 在线看片成人| 国产精品家教| 久久久亚洲高清| 99国产精品久久久| 国产小视频国产精品| 欧美成人自拍| 亚洲欧美日韩另类| 亚洲第一免费播放区| 国产精品久久一级| 久久综合婷婷| 亚洲免费在线| 亚洲福利免费| 国产精品多人| 美女日韩欧美| 亚洲免费在线看| 亚洲国产欧美不卡在线观看| 国产精品久久久久久久久免费| 久久久久久久一区| 一区二区91| 在线免费观看一区二区三区| 国产精品久久久久7777婷婷| 久久亚洲私人国产精品va媚药| 一区二区三区精密机械公司| 精品1区2区3区4区| 国产精品久久精品日日| 免费高清在线视频一区·| 亚洲欧美日韩精品综合在线观看| 亚洲成色最大综合在线| 国产精品九九| 欧美国产精品一区| 久久精品成人一区二区三区蜜臀| 一本色道久久综合精品竹菊| 黄色日韩网站视频| 国产精品高清网站| 欧美大片专区| 久久久久国产一区二区| 亚洲免费在线看| 最新成人av在线| 国产一区在线看| 国产精品福利网| 欧美激情精品| 蜜桃精品久久久久久久免费影院| 亚洲嫩草精品久久| 99国产精品久久| 亚洲激情影视| 精品成人国产| 国产亚洲欧美另类中文| 国产精品盗摄久久久| 欧美精品久久天天躁| 久久中文久久字幕| 亚洲欧美日韩在线高清直播| 一本大道久久a久久精品综合| 91久久久久久久久| 激情综合激情| 国产一区二区欧美| 国产精品社区| 国产精品成人va在线观看| 欧美精品一区二区三区很污很色的| 久久香蕉国产线看观看网| 欧美一级久久久久久久大片| 亚洲女女做受ⅹxx高潮| 这里是久久伊人| 一区二区欧美激情| 999亚洲国产精| 亚洲精品免费在线观看| 亚洲第一综合天堂另类专| 狠狠网亚洲精品| 国内精品久久久久久久影视蜜臀| 国产精品中文字幕欧美| 国产精品毛片| 国产九色精品成人porny| 国产精品久久久久久久久借妻| 欧美色欧美亚洲高清在线视频| 欧美精品首页| 欧美日韩不卡视频| 欧美日韩1080p| 欧美欧美全黄| 欧美精品综合| 欧美视频在线免费| 国产精品劲爆视频| 国产欧美日韩亚洲一区二区三区| 国产精品九九久久久久久久| 国产精品日韩欧美一区二区|