成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

開發 前端
日志的默認位置是相對于 Tomcat 基本目錄的日志目錄。默認情況下,日志目錄是一個臨時目錄,如果你要固定目錄,你可以安裝如上配置,日志位于 pack-tomcat/logs 中,相對于應用程序的工作目錄。

環境:SpringBoot3.2.5

1. 使用Maven自動擴展屬性

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

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

測試

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

輸出結果

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

maven parent定義如下:

圖片圖片

注:在生成環境下,你將無法看到上面的輸出結果,你需要做其它的配置,情況下面的第九條。

2. SpringApplication外部化配置

可以通過在 spring.main.* 中設置屬性來將配置外部化

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

其它配置屬性如下

圖片圖片

如果你通過編程的方式也設置了上面的屬性,如下:

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

那么配置文件中自定義配置優先級高于代碼中設置。

注意看上面的配置屬性,我們還可以之多多個源配置(其實就是添加一些配置類而已)。

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

不通過編碼,之間通過配置文件像容器中添加2個配置類。

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

我們可以通過以下系統屬性(或環境變量)來更改行為:

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

在應用啟動時,我們需要制定系統屬性或者對應的環境變量(上面的大寫),如下

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

指定配置文件的名稱是app,啟動時會自動的加載app.yml或者app.properties配置

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

指定配置文件的路徑。

4. 激活配置文件

當你有如下配置文件時:

圖片圖片

除默認的applicaiton.yml配置文件外,還有其它針對不同環境的配置文件,你可以通過如下配置激活對應的配置文件:

spring:
  profiles:
    active:
    - dev

這里設置dev后上面的配置不僅會加載默認的application.yml還會加載application-dev.yml配置文件。

當你沒有激活任何配置時(沒有設置spring.profiles.active),在默認情況下會加載default配置,如:application-default.yml。通過如下配置修改:

spring:
  profiles:
    default: dev

這樣配置后會加載application-dev.yml配置。

5. 設置父容器

在SpringMVC項目中默認是有父子容器說法,在SpringBoot項目默認是沒有父子容器,不過我們可以通過如下方式設置父子容器。

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

不管是使用child還是parent,內部創建的都是AnnotationConfigApplicationContext容器。

6. 修改默認DispatcherServlet路徑

默認情況下,所有接口訪問都從根目錄 (/) 進行。你可以按如下修改默認的訪問路徑:

spring:
  mvc:
    servlet:
      path: /api

這樣配置后所有的請求都必須是/api/**開頭。

對于DispatcherServlet的定義,我們可以通過自定義DispatcherServletRegistrationBean bean方式實現。

@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 ;
}

該種方式實現更多的自定義配置。

7. 訪問日志配置

訪問日志可通過 Tomcat、Undertow 和 Jetty 各自的命名空間進行配置。如下是對Tomcat配置。

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

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

8. 啟用 Tomcat 的 MBean 注冊表

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

server:
  tomcat:
    mbeanregistry:
      enabled: true

開啟以后,通過jconsole查看MBean信息,如下:

圖片圖片

在這里你可以查看到Tomcat的各項指標信息。

9. 生成構建信息

Maven 插件和 Gradle 插件都允許生成包含項目坐標、名稱和版本的構建信息。這些插件還可以通過配置添加其他屬性。當存在此類文件時,Spring Boot 會自動配置一個 BuildProperties Bean。

<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>

通過上面的配置,你在配置文件中使用的@...@就會得到生效。

10. 生成Git信息

Maven 和 Gradle 都允許生成一個 git.properties 文件,其中包含項目構建時 git 源代碼倉庫的狀態信息。添加如下插件:

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

編譯打包項目后,在你的jar包中的classes下會包含一個git.properties信息。內容如下(在控制臺也會輸出這些信息):

圖片圖片

jar包中的classes目錄

圖片圖片

責任編輯:武曉燕 來源: Spring全家桶實戰案例源碼
相關推薦

2021-11-17 11:03:14

Python代碼語法

2021-09-19 22:51:49

iPhone手機iOS

2020-09-11 06:39:29

ThreadLocal線程

2023-12-23 11:15:25

2022-01-05 11:40:36

Go特性語言

2020-10-28 11:20:55

vue項目技

2020-08-17 09:31:31

Git命令開發

2023-03-31 08:10:50

2025-01-26 10:49:52

2025-05-13 09:48:20

2021-04-06 11:30:50

疫情IT架構CIO

2020-02-20 08:30:49

OSPF網絡協議路由協議

2017-10-13 11:13:16

微信隱藏功能視頻編輯

2023-02-01 08:31:36

JavaScript循環遍歷

2023-08-29 09:31:01

Scrapy網頁爬蟲

2023-08-30 07:39:16

PawSQL數據庫

2022-03-03 23:56:29

JavaScriptArityAnonymous

2024-01-18 07:46:53

HookReact回調函數

2022-11-07 16:06:15

TypeScript開發技巧

2021-10-18 08:01:44

TS語言TypeScript
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产免费观看久久黄av片涩av | 欧美综合自拍 | 亚洲1区| 欧美一区二区三区视频 | 国产精品资源在线观看 | 欧美国产精品 | 中文区中文字幕免费看 | 欧美成人免费在线视频 | 色噜噜狠狠色综合中国 | 午夜伦4480yy私人影院 | 日本黄色大片免费 | 伊人狠狠干 | 欧美高清一级片 | 欧美色图综合网 | 91精品国产综合久久久久久丝袜 | 三级av在线 | 操人视频在线观看 | 亚洲精品成人在线 | 人人做人人澡人人爽欧美 | 黄色av网站在线观看 | 国产精品视频一区二区三区 | 日韩不卡一区二区 | 久久久久久成人网 | 91大神xh98xh系列全部 | 天天操天天插天天干 | 97久久久久久久久 | 欧美激情视频一区二区三区免费 | 中文字幕av网 | 犬夜叉在线观看 | 国产免费一区 | 美女天天干天天操 | www性色| 老牛嫩草一区二区三区av | 在线观看精品视频网站 | 久久精品亚洲成在人线av网址 | 毛片在线免费播放 | 精久久久 | 狠狠色综合欧美激情 | 欧美激情视频一区二区三区免费 | h视频免费在线观看 | 一区二区不卡视频 |