springboot3.0整合mybatis和tk.mybatis,Property ‘sqlSessionFactory‘or ‘sqlSessionTemplate‘ are required

3 篇文章 0 订阅
3 篇文章 0 订阅

参考:

https://blog.csdn.net/LabDNirvana/article/details/104497709

https://www.jb51.net/article/268361.htm

要升级springboot到3.0,首先需要将jdk升级到至少17.

但在整合mybatis的时候报错,Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required

通过debug,发现NestedIOException 在 Spring6的版本中删除了,因为springboot3.0在Nov 28, 2022发布的,mybatis-spring-boot-starter还没有发布与之匹配的正式版本,目前只能使用SNAPSHOT版本,但是需要在pom.xml需要配置一个新的远程仓库,并且需要在maven的settings.xml里面使用感叹号将新加的仓库从匹配中排除.

websocket的包也发生了变化,都在jakarta下了

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;


import jakarta.websocket.*;
import jakarta.websocket.server.PathParam;
import jakarta.websocket.server.ServerEndpoint;
import org.springframework.stereotype.Component;

@Component
@ServerEndpoint(value = "/aiws/{userName}")
public class WebSocketServer {
    static Map<Session, String> map = new HashMap<Session, String>();     //存储系统的用户信息

    /**
     * @param session
     */
    @OnOpen
    public void OnOpen(@PathParam("userName") String userName, Session session) {
        System.out.println(userName);
        map.put(session, userName);
        System.out.println("OnOpen()方法被执行...");
        System.out.println("websocket连接建立成功...");
    }

    /**
     * 连接关闭的方法
     */
    @OnClose
    public void OnClose(Session session) {
        if (map.containsKey(session)) {
            map.remove(session);
        }
        System.out.println("OnClose()方法被执行...");
        System.out.println("websocket连接已经关闭...");
    }

    /**
     * 接收消息的方法
     *
     * @param msg
     * @param session
     * @throws InterruptedException
     */
    @OnMessage
    public void OnMessage(String msg, Session session) throws InterruptedException {
        System.out.println("已从客户端接收消息:" + msg);

        System.out.println("向客户端发送数据完毕...");
    }

    /**
     * 出错的方法,注意参数不能错
     *
     * @param session
     * @param error
     */
    @OnError
    public void OnError(Session session, Throwable error) {
        if (map.containsKey(session)) {
            map.remove(session);
        }
        System.out.println("OnError()方法dewd被执行...");
        System.out.println("websocket出错...");
    }

    /**
     * 推送数据的方法
     *
     * @param session map里存的登录信息
     * @param message 推送数据
     */
    public void sendMessage(Session session, String message) {
        try {
            session.getBasicRemote().sendText(message);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

1.pom.xml添加新的远程仓库

	<repositories>
		<repository>
			<id>ossrh</id>
			<name>OSS Snapshot repository</name>
			<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>

2.setting.xml排除新加的远程仓库

<?xml version="1.0"?>
<settings>
	<mirrors>
		<mirror>
			<id>nexus</id>
			<name>local private nexus</name>
			<url>http://xx.xx.xx.xx:8081/nexus/content/groups/public</url>
			<mirrorOf>*,!ossrh</mirrorOf>
		</mirror>
	</mirrors>
</settings>

完整的pom.xml如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.0.0</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.test</groupId>
	<artifactId>test</artifactId>
	<version>1.0.1-SNAPSHOT</version>
	<name>aidemo</name>
	<description>Spring Boot3.0 Test Project</description>
	<properties>
		<java.version>17</java.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi</artifactId>
			<version>5.0.0</version>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-ooxml</artifactId>
			<version>5.0.0</version>
			<exclusions>
				<exclusion>
					<groupId>commons-io</groupId>
					<artifactId>commons-io</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.5</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>8.0.22</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-websocket</artifactId>
		</dependency>
		<dependency>
			<groupId>tk.mybatis</groupId>
			<artifactId>mapper</artifactId>
			<version>4.2.2</version>
		</dependency>
		<dependency>
			<groupId>tk.mybatis</groupId>
			<artifactId>mapper-spring-boot-starter</artifactId>
			<version>4.2.2</version>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-jdbc</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.mybatis</groupId>
					<artifactId>mybatis-spring</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.mybatis</groupId>
					<artifactId>mybatis</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.mybatis.spring.boot</groupId>
			<artifactId>mybatis-spring-boot-starter</artifactId>
			<version>3.0.2-SNAPSHOT</version>
		</dependency>
	</dependencies>
	<repositories>
		<repository>
			<id>ossrh</id>
			<name>OSS Snapshot repository</name>
			<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>
	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.mybatis.generator</groupId>
				<artifactId>mybatis-generator-maven-plugin</artifactId>
				<version>1.3.7</version>
				<configuration>
					<verbose>true</verbose>
					<overwrite>false</overwrite>
					<configurationFile>${project.basedir}/genConfig.xml</configurationFile>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>mysql</groupId>
						<artifactId>mysql-connector-java</artifactId>
						<version>8.0.22</version>
					</dependency>
					<dependency>
						<groupId>tk.mybatis</groupId>
						<artifactId>mapper</artifactId>
						<version>4.1.5</version>
					</dependency>
				</dependencies>
			</plugin>
		</plugins>
	</build>
</project>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值