最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot2升級(jí)到springboot3過程相關(guān)修改記錄

 更新時(shí)間:2024年12月16日 11:49:09   作者:冰之杍  
本文詳細(xì)記錄了將Spring Boot 2升級(jí)到Spring Boot 3的過程,包括升級(jí)JDK到17、修改依賴、配置文件調(diào)整以及處理一些特定問題,如Redisson版本升級(jí)和Swagger配置,感興趣的朋友跟隨小編一起看看吧

近期項(xiàng)目被掃描出關(guān)于Spring Framework路徑遍歷漏洞(CVE-2024-38816),客戶要求整改,查了下springboot2需要升級(jí)到5.3.40才可以,但springboot2好像不太能很快就升級(jí),或者有可能不再會(huì)升級(jí)了,因此直接就將springboot升級(jí)到3了,本想著萬年jdk8,但springboot3不支持jdk8,看樣子要打破了,因此利用周末做了一下升級(jí)測(cè)試,記錄如下:

以下為我進(jìn)行springboot2升級(jí)到springboot3過程相關(guān)修改記錄,備查,你的項(xiàng)目不一定用到下面所有的,可以參考著改

主要修改

jdk升級(jí)

按springboot3要求,升級(jí)到j(luò)dk17或jdk21,我這邊是升級(jí)到j(luò)dk17

spring-boot-starter-parent

spring-boot-starter-parent依賴版本升級(jí)

升級(jí)前

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.7.18</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>

升級(jí)后

<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.4.0</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>

jdk源碼編碼修改,將1.8改成17或21

修改前

<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
		</plugins>
	</build>

修改后

<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>17</source>
					<target>17</target>
				</configuration>
			</plugin>
		</plugins>
	</build>

javax.servlet.*相關(guān)的類找不到,需要切換依賴為jakarta.servlet

<!--jakarta.servlet start -->
		<dependency>
			<groupId>jakarta.servlet</groupId>
			<artifactId>jakarta.servlet-api</artifactId>
		</dependency>
		<!--jakarta.servlet end -->

同時(shí),將所有javax.servlet.*修改為jakarta.servlet.*

另外校驗(yàn)類相關(guān)的也進(jìn)行修改javax.validation.*修改為jakarta.validation.*

mybatis-plus-boot-starter升級(jí)

mybatis-plus-boot-starter需要升級(jí),不升可能會(huì)報(bào)Invalid value type for attribute ‘factoryBeanObjectType’: java.lang.String,需要升級(jí)一下依賴

升級(jí)成:mybatis-plus-spring-boot3-starter,我使用的是3.5.5

<!-- mybatis-plus start-->
		<dependency>
		    <groupId>com.baomidou</groupId>
		    <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
		    <version>3.5.5</version>
		</dependency>
		<!-- mybatis-plus end-->

redis修改

配置上需要加上data

需要修改redis的配置:由原來的spring.redis.修改為spring.data.redis.

改完后重啟又發(fā)現(xiàn)如下錯(cuò)誤:
Unable to make field private final byte[] java.lang.String.value accessible: module java.base does not “opens java.lang” to unnamed module @2bbaf4f0

原因是redission版本比較低,我升級(jí)版本后就沒問題了

升級(jí)前版本:<redisson.version>3.12.5</redisson.version>

升級(jí)后版本:<redisson.version>3.40.2</redisson.version>

swagger升級(jí)到springboot3

<swagger3.version>2.7.0</swagger3.version>
<!-- swagger3 start -->
		<dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
      <version>${swagger3.version}</version>
    </dependency>
    <!-- swagger3 end -->

swagger3默認(rèn)是開啟了接口和doc的訪問的如引入上面的依賴后,可以通過如下地址訪問(假如端口為8080,context-path為/test)

http://localhost:8080/test/swagger-ui/index.html
http://localhost:8080/test/v3/api-docs

注:如果生產(chǎn)環(huán)境中需要禁用,使用如下配置進(jìn)行,分別進(jìn)行ui的禁用和api-docs的禁用

springdoc:
  swagger-ui:
    enabled: true
  api-docs:
    enabled: true

其他修改參考

如果用到了阿里巴巴druid數(shù)據(jù)源,最好升級(jí)到新版本

我這里是從druid的1.2.12版本升級(jí)到了1.2.24

注:我使用的是編程式的阿里巴巴的監(jiān)控配置,WebStatFilter和StatViewServlet的實(shí)現(xiàn)類需要修改,如果不是用編程式,可以不用管這一步

import com.alibaba.druid.support.jakarta.WebStatFilter;
import jakarta.servlet.annotation.WebFilter;
import jakarta.servlet.annotation.WebInitParam;
//注意不要忘記在 SpringBootSampleApplication.java 上添加 @ServletComponentScan 注解,不然就是404了。
@WebFilter(
		filterName = "druidWebStatFilter", urlPatterns = "/*", 
		initParams = { @WebInitParam(name = "exclusions", value = "weburi.json,.html,.js,.gif,.jpg,.png,.css,.ico,/druid/*") // 忽略資源
})
public class DruidStatFilter extends WebStatFilter {
}
import com.alibaba.druid.support.jakarta.StatViewServlet;
import jakarta.servlet.annotation.WebInitParam;
import jakarta.servlet.annotation.WebServlet;
//注意不要忘記在 SpringBootSampleApplication.java 上添加 @ServletComponentScan 注解,不然就是404了。
@WebServlet(urlPatterns="/druid/*",  
    initParams={  
         @WebInitParam(name="allow",value=""),// IP白名單(沒有配置或者為空,則允許所有訪問)  
         @WebInitParam(name="deny",value=""),// IP黑名單 (存在共同時(shí),deny優(yōu)先于allow)  
         @WebInitParam(name="loginUsername",value="admin"),// 用戶名  
         @WebInitParam(name="loginPassword",value="123456"),// 密碼  
         @WebInitParam(name="resetEnable",value="true")// 啟用HTML頁面上的“Reset All”功能  
})  
public class DruidStatViewServlet extends StatViewServlet {  
    private static final long serialVersionUID = -2688872071445249539L;  
}  

LocalVariableTableParameterNameDiscoverer類找不到

springboot3中沒有這個(gè)類了,需要修改成org.springframework.core.StandardReflectionParameterNameDiscoverer

到此這篇關(guān)于springboot2升級(jí)到springboot3過程相關(guān)修改的文章就介紹到這了,更多相關(guān)springboot2升級(jí)到springboot3內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Sentinel的熔斷降級(jí)、資源規(guī)則詳解與實(shí)例

    Sentinel的熔斷降級(jí)、資源規(guī)則詳解與實(shí)例

    這篇文章主要介紹了Sentinel的熔斷降級(jí)、資源規(guī)則詳解與實(shí)例,Sentinel是阿里巴巴開源的一款流量控制和熔斷降級(jí)的框架,它主要用于保護(hù)分布式系統(tǒng)中的服務(wù)穩(wěn)定性,Sentinel通過對(duì)服務(wù)進(jìn)行流量控制和熔斷降級(jí),可以有效地保護(hù)系統(tǒng)的穩(wěn)定性,需要的朋友可以參考下
    2023-09-09
  • Java中的原生post請(qǐng)求方式

    Java中的原生post請(qǐng)求方式

    這篇文章主要介紹了Java中的原生post請(qǐng)求方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • MyBatis實(shí)現(xiàn)多表聯(lián)查的詳細(xì)代碼

    MyBatis實(shí)現(xiàn)多表聯(lián)查的詳細(xì)代碼

    這篇文章主要介紹了MyBatis如何實(shí)現(xiàn)多表聯(lián)查,通過實(shí)例代碼給大家介紹使用映射配置文件實(shí)現(xiàn)多表聯(lián)查,使用注解的方式實(shí)現(xiàn)多表聯(lián)查,需要的朋友可以參考下
    2022-08-08
  • 使用redis的increment()方法實(shí)現(xiàn)計(jì)數(shù)器功能案例

    使用redis的increment()方法實(shí)現(xiàn)計(jì)數(shù)器功能案例

    這篇文章主要介紹了使用redis的increment()方法實(shí)現(xiàn)計(jì)數(shù)器功能案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • java 使用DecimalFormat進(jìn)行數(shù)字的格式化實(shí)例詳解

    java 使用DecimalFormat進(jìn)行數(shù)字的格式化實(shí)例詳解

    這篇文章主要介紹了java 使用DecimalFormat進(jìn)行數(shù)字的格式化實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • springboot bean循環(huán)依賴實(shí)現(xiàn)以及源碼分析

    springboot bean循環(huán)依賴實(shí)現(xiàn)以及源碼分析

    最近在使用Springboot做項(xiàng)目的時(shí)候,遇到了一個(gè)循環(huán)依賴的 問題,所以下面這篇文章主要給大家介紹了關(guān)于springboot bean循環(huán)依賴實(shí)現(xiàn)以及源碼分析的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • 如何利用jwt來保護(hù)你的接口服務(wù)

    如何利用jwt來保護(hù)你的接口服務(wù)

    項(xiàng)目軟件要對(duì)外提供部分定制接口,為了保證軟件數(shù)據(jù)的安全性,這篇文章主要給大家介紹了關(guān)于如何利用jwt來保護(hù)你的接口服務(wù)的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • FactoryBean?BeanFactory方法使用示例詳解講解

    FactoryBean?BeanFactory方法使用示例詳解講解

    這篇文章主要為大家介紹了FactoryBean?BeanFactory方法使用示例詳解講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 解決spring-data-jpa mysql建表編碼問題

    解決spring-data-jpa mysql建表編碼問題

    這篇文章主要介紹了解決spring-data-jpa mysql建表編碼問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Springboot集成JAXB返回xml格式

    Springboot集成JAXB返回xml格式

    這篇文章主要為大家詳細(xì)介紹了Springboot如何集成JAXB返回xml格式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12

最新評(píng)論

肥东县| 措勤县| 巴东县| 富阳市| 湛江市| 肃北| 天全县| 临武县| 甘南县| 库尔勒市| 固原市| 济源市| 含山县| 出国| 阿合奇县| 进贤县| 图木舒克市| 太湖县| 武陟县| 永善县| 巫山县| 连城县| 长春市| 彰化县| 宝鸡市| 松溪县| 甘肃省| 荥经县| 巴彦县| 昌黎县| 南郑县| 若尔盖县| 锦屏县| 和龙市| 綦江县| 镇平县| 沙坪坝区| 温宿县| 金秀| 安丘市| 临海市|