最近在学习SpringBoot编程,参考网上文章https://blog.youkuaiyun.com/abjtxf/article/details/132410101,写得很详细,高赞!但是按照文章中的步骤一步步做下来,仍然出现各种编译和运行问题,主要原因是因为采用了SpringBoot3的最新版本,出现各种组件不兼容。因为刚开始学,踩了很多坑,这里做一个记录备忘,如果有朋友遇到同样的问题,可以参考下,少走些弯路。
本文的基本逻辑是以上面的参考文章为蓝本,记录需要修正的地方,其他的与原文保持一致。
我使用的开发工具是:
Eclipse 2023-12版本,下载链接:https://www.eclipse.org/downloads/
Maven 3.9.6版本,下载链接:https://maven.apache.org/download.cgi
Java JDK 17版本,下载链接:https://www.oracle.com/java/technologies/downloads/#java17
MySql 5.7版本,下载链接:https://dev.mysql.com/downloads/windows/installer/
至于以上工具的基本环境设置,可以在网上搜索相关文章,非常多。
首先在Eclipse Marketplace里面安装STS4(现在是4.21.0版本),安装以后就支持SpringBoot3的开发。我创建项目时采用了最新的SpringBoot3.2.2版本,与此版本相适应,MyBatis-Plus已经升级为5.5版本(但仍没有解决Mybatis报错的问题,参见以下pom.xml中的注释),Druid需要用新的SpringBoot3相应的starter。另外,POM文件的标签路径也需要修改。我的pom.xml文件抄录如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="https://maven.apache.org/POM/4.0.0" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mytest</groupId>
<artifactId>spboot-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>spboot-demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.2</version>
</parent>
<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>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.5</version>
<!-- mybatis-plus 3.5.4和3.5.5与springboot3配合有mybatis兼容问题,请参考:
https://www.jb51.net/program/308745bxt.htm 以及
https://blog.youkuaiyun.com/weixin_46211609/article/details/135552632
-->
<exclusions>
<exclusion>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<!-- 注意这里要用boot-3-starter, 参考:
https://blog.youkuaiyun.com/weixin_42217348/article/details/131236419
-->
<artifactId>druid-spring-boot-3-starter</artifactId>
<version>1.2.20</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>17</source>
<target>17</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.mytest.spbootdemo.SpbootDemoApplication</mainClass>
<skip>true</skip>
</configuration>
<executions>
<execution>
<id>repackage</id>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
我的application.yml文件抄录如下:
# 应用服务 WEB 访问端口
server:
port: 8080
spring:
datasource:
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/ssm_db
username: your-database-username
password: your-database-password
mybatis-plus:
global-config:
db-config:
table-prefix: tbl_
id-type: auto
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
另外,在运行程序时还经常报虚拟内存不足的异常,查阅相关文章,比较有用的参考链接如下:
https://blog.youkuaiyun.com/qq_35461948/article/details/117461355
https://blog.youkuaiyun.com/m0_67402914/article/details/124288590
最后附上一个好用的数据库管理工具heidisql,下载链接:https://www.heidisql.com/download.php?download=installer