1. Spring Boot 整合 MyBatis 与 PostgreSQL 实战指南
在企业级Java开发中,Spring Boot、MyBatis和PostgreSQL的组合堪称黄金搭档。我曾在多个生产项目中采用这套技术栈,它既能保持Spring生态的完整性,又能发挥MyBatis对SQL的精准控制优势,配合PostgreSQL强大的数据管理能力,开发效率提升显著。本文将分享我在实际项目中总结的最佳实践,从环境搭建到完整功能实现,带你避开那些新手常踩的坑。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境搭建与准备
2.1 开发环境配置
在开始项目前,我们需要确保开发环境准备妥当。我推荐使用以下版本组合,这是经过多个项目验证的稳定搭配:
- JDK 17:虽然Spring Boot支持JDK 8,但新项目建议直接使用LTS版本的JDK 17。安装后通过终端执行:
bash复制java -version
应显示类似"17.0.x"的版本信息。如果使用旧版本,可能会错过一些性能优化和新特性。
- Maven 3.8+:配置Maven时,除了设置阿里云镜像加速依赖下载,我建议在settings.xml中添加以下配置:
xml复制<profile>
<id>default</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</profile>
这样可以确保项目默认使用UTF-8编码和正确的Java版本。
注意:避免使用Maven 3.9.0版本,该版本存在已知的依赖解析问题。建议使用3.8.6或3.9.1+版本。
2.2 PostgreSQL安装与配置
PostgreSQL的安装有几个关键点需要注意:
-
版本选择:目前稳定版本是PostgreSQL 15。安装时建议:
- 为postgres用户设置强密码
- 修改默认端口(如果不是开发环境)
- 配置合适的共享缓冲区大小(shared_buffers),通常设为物理内存的25%
-
数据库创建:安装完成后,通过psql创建项目数据库:
sql复制CREATE DATABASE spring_mybatis_db
WITH ENCODING='UTF8'
LC_COLLATE='en_US.UTF-8'
LC_CTYPE='en_US.UTF-8';
指定UTF-8编码可以避免后续出现字符集问题。
- 用户权限:不要直接使用postgres超级用户,应该创建专用用户:
sql复制CREATE USER app_user WITH PASSWORD 'secure_password';
GRANT ALL PRIVILEGES ON DATABASE spring_mybatis_db TO app_user;
3. 项目初始化与基础配置
3.1 使用Spring Initializr创建项目
在IDEA中创建Spring Boot项目时,除了选择Web、MyBatis和PostgreSQL驱动外,我建议额外添加:
- Lombok:减少样板代码
- Spring Boot Actuator:用于应用监控
- Spring Configuration Processor:配置提示支持
项目结构创建后,第一时间检查pom.xml中的依赖版本是否兼容。特别是MyBatis Starter的版本要与Spring Boot版本匹配。例如Spring Boot 3.1.x对应:
xml复制<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.2</version>
</dependency>
3.2 数据源高级配置
基础的application.properties配置虽然简单,但在生产环境中需要更细致的调优。我推荐使用YAML格式的application.yml,并添加以下配置:
yaml复制spring:
datasource:
url: jdbc:postgresql://localhost:5432/spring_mybatis_db
username: app_user
password: secure_password
hika
