springboot2.7+shiro1.13升级springboot3.1

最大的改动是jdk低要求17,原先servlet的包名从javax改为了jakarta

1、jdk从1.8升到17,我是从oracle jdk1.8改成了Adoptium.jdk-17,基本没有影响。

2、springboot2.7升到3.1

pom直接把版本从2.7改到3.1

主要需要修改的地方有:

(1)servlet的包名从javax改为了jakarta,只是包名修改,其它没有影响。所有涉及的类都改一下吧。

(2)如有用到org.apache.httpcomponents,需要升到到httpclient5

例如我用到的RestTemplate 信任https,客户端工厂创建需要改一下,类似这样

public static HttpComponentsClientHttpRequestFactory generateHttpRequestFactory()
			throws NoSuchAlgorithmException, KeyManagementException, KeyStoreException{
		
		SSLContext sslContext = SSLContextBuilder.create()
				.loadTrustMaterial(TrustAllStrategy.INSTANCE).build();
		
		SSLConnectionSocketFactory sslConnectionSocketFactory= SSLConnectionSocketFactoryBuilder.create()
				.setSslContext(sslContext)
				.setHostnameVerifier(NoopHostnameVerifier.INSTANCE).build();
		
		PoolingHttpClientConnectionManager tttpClientConnectionManager = PoolingHttpClientConnectionManagerBuilder.create()
				.setSSLSocketFactory(sslConnectionSocketFactory)
				.build();
		//可设置socket timeout时间,默认3分钟
//		tttpClientConnectionManager.setDefaultSocketConfig(SocketConfig.custom()
//				.setSoTimeout(Timeout.ofMinutes(1)).build());
		
		CloseableHttpClient httpClient = HttpClients.custom()
				.setConnectionManager(tttpClientConnectionManager)
				.build();
		
		HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
		factory.setHttpClient( httpClient );
		return factory;
	}

3、shiro的修改,我是从1.13升级2.0.1

(1)pom修改,由于直接2.0中很多包依然还是引用javax.servlet,因此大概调成这样。

参考了这个大神的文章:SpringBoot3 集成 Shiro_springboot3 shiro-CSDN博客

<dependency>
		    <groupId>org.apache.shiro</groupId>
		    <artifactId>shiro-spring-boot-starter</artifactId>
		    <classifier>jakarta</classifier>
		    <version>${shiro-spring.version}</version>
		    <exclusions>
		        <exclusion>
		            <groupId>org.apache.shiro</groupId>
		            <artifactId>shiro-crypto-cipher</artifactId>
		        </exclusion>
		        <exclusion>
		            <groupId>org.apache.shiro</groupId>
		            <artifactId>shiro-crypto-hash</artifactId>
		        </exclusion>
		        <exclusion>
		            <groupId>org.apache.shiro</groupId>
		            <artifactId>shiro-web</artifactId>
		        </exclusion>
		        <exclusion>
		            <groupId>org.apache.shiro</groupId>
		            <artifactId>shiro-spring</artifactId>
		        </exclusion>
		    </exclusions>
		</dependency>
		<dependency>
		    <groupId>org.apache.shiro</groupId>
		    <artifactId>shiro-web</artifactId>
		    <classifier>jakarta</classifier>
		    <version>${shiro-spring.version}</version>
		</dependency>
		<dependency>
		    <groupId>org.apache.shiro</groupId>
		    <artifactId>shiro-spring</artifactId>
		    <classifier>jakarta</classifier>
		    <version>${shiro-spring.version}</version>
		</dependency>

(2)有用到它的Md5Hash类的,需要改一下,换成SimpleHash。Md5Hash已经废弃了。

(3)配置文件的ShiroFilterFactoryBean需要指定bean名称,不然会报创建bean错误。大概这样

@Bean(name = "filterShiroFilterRegistrationBean")
	public ShiroFilterFactoryBean shiroFilter(SecurityManager securityManager) {
    ……
}

4、mybatis-plus直接升到3.5.7,没有影响

<dependency>
		    <groupId>com.baomidou</groupId>
		    <artifactId>mybatis-plus-boot-starter</artifactId>
		    <version>3.5.7</version>
		</dependency>

5、其它的暂时没发现什么,看着好像也没改啥,但还是折腾了半天,累死个人……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值