自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SpringBoot3這些變化一定要記住了

開發(fā) 前端
在AuthenticationManagerResolver存在時(shí),ReactiveUserDetailsService不再自動(dòng)配置。如果應(yīng)用程序依賴于ReactiveUserDetailService,盡管存在AuthenticationManagerResolver,請(qǐng)定義自己的ReactiveUserDetailsService bean來(lái)滿足其需求。?

環(huán)境:SpringBoot.3.0.5

1.Spring MVC 和 WebFlux URL 匹配更改

從 Spring Framework 6.0 開始,尾部斜杠匹配配置選項(xiàng)已被棄用,其默認(rèn)值設(shè)置為false。如下示例:

// 在Spring6之前匹配下面兩個(gè)路徑
// 1. /some/greeting
// 2. /some/greeting/
@GetMapping("/some/greeting")
public String greeting() {
  return "Hello";
}
// 在spring6之后版本中只能匹配/some/greeting這一個(gè)路徑

你可以通過(guò)如下方式支持尾部斜杠

@GetMapping("/some/greeting", "/some/greeting/")

// spring mvc
@Configuration
public class WebConfiguration implements WebMvcConfigurer {
  @Override
  public void configurePathMatch(PathMatchConfigurer configurer) {
    configurer.setUseTrailingSlashMatch(true) ;
  }
}
// webflux
@Configuration
public class WebConfiguration implements WebFluxConfigurer {
  @Override
  public void configurePathMatching(PathMatchConfigurer configurer) {
    configurer.setUseTrailingSlashMatch(true) ;
  }
}

2. Http Header大小配置

在Spring6之前版本,server.max-http-header-size在四個(gè)支持的嵌入式web服務(wù)器上的處理不一致。當(dāng)使用Jetty、Netty或Undertow時(shí),它會(huì)配置最大HTTP請(qǐng)求頭大小。當(dāng)使用Tomcat時(shí),它會(huì)配置最大HTTP請(qǐng)求和響應(yīng)頭大小。

為了解決這種不一致,server.max-http-header-size已被棄用,并引入了server.max-http-request-header-size的替代品。這兩個(gè)屬性現(xiàn)在只適用于請(qǐng)求header大小,而與底層的web服務(wù)器無(wú)關(guān)。

# Spring6之前版本
server:
  max-http-header-size: 8KB
# Spring6之后版本  
server:
  max-http-request-header-size: 8KB

要限制Tomcat或Jetty(僅有的兩個(gè)服務(wù)器支持這樣的設(shè)置)上HTTP響應(yīng)頭的最大大小,請(qǐng)使用WebServerFactoryCustomizer。

public class WebConfig implements WebServerFactoryCustomizer<TomcatServletWebServerFactory> {


  @Override
  public void customize(TomcatServletWebServerFactory factory) {
    // ...
  }
}

Jetty

Jetty還不支持Servlet 6.0。要在Spring Boot 3.0中使用Jetty,必須將Servlet API降級(jí)到5.0。您可以使用jakarta-servlet。屬性來(lái)執(zhí)行此操作。

3. RestTemplate 中的 Apache HttpClient

Spring6已刪除對(duì) Apache HttpClient 的支持,并替換為org.apache.httpcomponents.client5:httpclient5(注意:此依賴項(xiàng)具有不同的 groupId)。如果您注意到 HTTP 客戶端行為存在問(wèn)題,則可能是RestTemplate回退到 JDK 客戶端。org.apache.httpcomponents:httpclient可以由其他依賴項(xiàng)傳遞傳遞,因此您的應(yīng)用程序可能依賴此依賴項(xiàng)而不聲明它。

4. Actuator Endpoints清理

因?yàn)?env和/configprops端點(diǎn)可以包含敏感值,所以默認(rèn)情況下所有值總是被屏蔽。這曾經(jīng)只適用于敏感的鍵。

SpringBoot3之前版本,如下2.7.16 訪問(wèn)/env返回結(jié)果:

圖片圖片

只對(duì)敏感信息加密處理。

SpringBoot3中,如下3.2.1 訪問(wèn)/env返回結(jié)果:

圖片圖片

圖片圖片

所有值都加密處理了。

你可以通過(guò)如下配置進(jìn)行顯示

management:
  endpoint:
    env:
      show-values: always
    configprops:
      show-values: always

自定義加密處理功能

@Configuration
public class ActuatorConfig {
  @Bean
  SanitizingFunction sanitizingFunction() {
    return data -> {
      return data.withValue("------") ;
    };
  }
}

圖片圖片

5. 配置更改

Cassandra屬性

Cassandra的配置屬性已經(jīng)從spring.data.cassandra改變?yōu)閟pring.cassandra .

Redis屬性

Redis的配置屬性已經(jīng)從spring.redis改變?yōu)閟pring.data.redis。因?yàn)閞edis自動(dòng)配置要求Spring數(shù)據(jù)存在于classpath中。

MySQL JDBC驅(qū)動(dòng)

MySQL JDBC驅(qū)動(dòng)程序的坐標(biāo)已經(jīng)從mysql:mysql-connector-java更改為com.mysql:mysql-connector-j。如果你使用的是MySQL JDBC驅(qū)動(dòng),升級(jí)到Spring Boot 3.0時(shí)要相應(yīng)地更新它的坐標(biāo)。

Spring Security 改變

Spring Boot 3.0已升級(jí)到Spring Security 6.0。

ReactiveUserDetailsService

在AuthenticationManagerResolver存在時(shí),ReactiveUserDetailsService不再自動(dòng)配置。如果應(yīng)用程序依賴于ReactiveUserDetailService,盡管存在AuthenticationManagerResolver,請(qǐng)定義自己的ReactiveUserDetailsService bean來(lái)滿足其需求。

責(zé)任編輯:武曉燕 來(lái)源: Spring全家桶實(shí)戰(zhàn)案例源碼
相關(guān)推薦

2024-05-10 08:10:05

Spring虛擬線程JDK

2021-09-14 11:26:22

微服務(wù)架構(gòu)模式

2023-09-26 07:43:22

工具骨架屏頁(yè)面

2020-08-19 10:11:36

SQLMySQL數(shù)據(jù)庫(kù)

2014-10-29 14:52:13

程序員

2020-12-03 10:17:25

Kubernetes架構(gòu)微服務(wù)

2018-09-04 15:10:40

2021-03-15 12:00:19

Kubernetes微服務(wù)架構(gòu)

2023-08-07 14:28:07

SpringBoot工具

2018-02-25 04:57:01

物聯(lián)網(wǎng)網(wǎng)絡(luò)技術(shù)v

2017-10-12 16:28:33

奧哲H3BPM

2020-10-19 07:50:32

Linux命令系統(tǒng)

2018-10-26 14:32:46

2017-06-07 09:13:13

云存儲(chǔ)云服務(wù)公有云

2023-08-09 08:29:51

SpringWeb編程

2021-05-12 11:10:11

HTTPSLinux服務(wù)器

2018-08-15 13:25:18

Java開源工具

2024-02-19 09:02:00

Rust庫(kù)編碼

2010-11-19 16:02:42

IT族

2020-09-08 14:05:06

Redis數(shù)據(jù)庫(kù)緩存
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)