发布日期:2026-06-25
版本升级:全模块 1.1.x → 1.2.0
最低 JDK 版本:JDK 17+(如需 JDK8 兼容请使用 1.0.7 及以下版本)
总体数据
|
项目
|
数量
|
|
变更文件
|
136 个
|
|
新增代码
|
+4782 行
|
|
删除代码
|
-1587 行
|
|
非合并提交
|
约 35 个
|
一、新增了哪些
1. wiki-datasource — MyBatis 主从读写能力(核心)
|
新增内容
|
说明
|
|
@Master / @Slave 注解
|
在 Mapper 上显式指定主库/从库
|
|
DataSourceAspect
|
AOP 拦截 Mapper 调用,动态切换数据源
|
|
DynamicDataSource
|
路由数据源,按上下文选择主/从
|
|
DataSourceContextHolder
|
ThreadLocal 保存当前数据源类型
|
|
DataSourceType 枚举
|
MASTER / SLAVE
|
|
MapperPrimaryScannerConfiguration
|
主库 Mapper 独立扫描
|
|
MapperScannerConfiguration
|
从库 Mapper 独立扫描
|
|
MybatisMapperScanSupport
|
从 Environment 解析配置,避免早期绑定问题
|
2. socket/wiki-sse — SSE 模块(全新)
3. config/ — 配置中心模块重组
-
config/wiki-config — 自 wiki-config 迁出
-
config/wiki-nacos-config — Nacos 配置
-
config/wiki-nacos-cloud-config — Nacos Cloud 配置
-
ConfigureRefreshController — 配置刷新接口
4. security/wiki-oauth2 — OAuth2 监控与事件
-
MetricsConfig — Metrics 监控
-
TokenEventService / AuthorizationEventService — Token 与授权事件
-
AuthEventListener — 认证事件监听
-
MetricOAuth2AuthorizationServiceImpl — 带监控的授权服务
-
CustomOauth2AuthorizationService — 重构后的授权服务接口
5. wiki-util — HTTP 工具
6. wiki-security — 用户与机构
7. 实体字段
8. 脚本与文档
二、优化了哪些
wiki-datasource(重点优化)
-
配置绑定
-
主从切换规则
-
双 SqlSessionFactory
-
稳定性
wiki-minio
wiki-oauth2
wiki-cloud
依赖与协议
三、调整了哪些
|
模块
|
调整内容
|
|
版本
|
全项目 1.1.x → 1.2.0,各模块 pom.xml 同步
|
|
目录
|
wiki-config → config/wiki-config;删除历史配置目录
|
|
用户登录
|
支持多机构;登录成功后更新缓存
|
|
代码生成
|
FTL 模板包名、mapper.ftl 等引用修正
|
|
MyBatis XML
|
wiki-center 下 mapper XML 路径调整
|
|
全局响应
|
GlobalResponseHandler 增加对字符串返回的兼容
|
|
Redis / Minio
|
自动配置类小调整
|
|
构建脚本
|
wiki.sh、bin/install.sh、bin/package.sh、bin/javadoc.sh 更新
|
四、修改 / 修复了哪些
|
问题
|
修复
|
|
Mybatis 主从连接
|
主从 Druid 数据源、MybatisDruidDbConfiguration 重构
|
|
配置读不到
|
MybatisConfig 重复注册、Mapper 扫描时序问题
|
|
ClassNotFoundException: com.mysql.cj.jdbc.Driver
|
驱动需业务项目自行引入 mysql-connector-j(框架内为 test scope)
|
|
HTTPS ContentType
|
HttpsClientUtils 创建错误修复
|
|
代码生成模板
|
引包错误修复
|
|
SSE 发布订阅
|
成功/失败回调、消息内容返回等多次迭代
|
|
OAuth2
|
JwtTokenFilter、AuthorizationServerConfig 等调整
|
五、wiki-datasource 变更一览
新增文件
@Master.java / @Slave.java
DataSourceAspect.java
DynamicDataSource.java / DataSourceContextHolder.java
DataSourceType.java
MapperPrimaryScannerConfiguration.java
MapperScannerConfiguration.java
MybatisMapperScanSupport.java
重点修改
|
文件
|
变更说明
|
|
MybatisConfig.java
|
master/slave 嵌套配置,去掉 @Configuration
|
|
MybatisAutoConfiguration.java
|
@Bean 注册 Mapper 扫描
|
|
MybatisConfiguration.java
|
双 SqlSessionFactory
|
|
MybatisDruidDbConfiguration.java
|
主从 Druid 数据源
|
|
pom.xml
|
mysql-connector-j 改为 test scope
|
主从切换逻辑
@Master 注解存在 → MASTER
@Slave 注解存在 → SLAVE
两者都没有 → MASTER(默认)
数据源切换日志
每次 Mapper 方法调用前输出 INFO 日志:
数据源切换: MASTER -> com.xxx.mapper.UserMapper.selectById()
数据源切换: SLAVE -> com.xxx.mapper.UserMapper.selectList()
六、业务侧配置与使用
application.yml 配置示例
spring:
datasource:
# 公共 Mapper 扫描包(主从共用)
mybatis-mapper:
- com.framewiki.example.mapper
# 公共 Mapper XML 路径
mybatis-mapper-xml:
- /mybatis/**/*.xml
# Druid 连接池参数(建议配置)
max-active: 20
initial-size: 5
min-idle: 5
filters: stat,wall
master:
url: jdbc:mysql://host:3306/db?characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: root
password: your_password
driver-class-name: com.mysql.cj.jdbc.Driver
slave:
url: jdbc:mysql://host:3306/db?characterEncoding=utf8&serverTimezone=Asia/Shanghai
username: root
password: your_password
driver-class-name: com.mysql.cj.jdbc.Driver
Mapper 注解用法
// 默认主库,无需加注解
public interface RmsUserMapper {
RmsUser selectById(Long id);
}
// 显式走从库
public interface RmsUserQueryMapper {
@Slave
List<RmsUser> selectList();
}
// 从库 Mapper 上标了 @Slave,但某个写操作强制走主库
@Slave
public interface RmsUserSlaveMapper {
@Master
int updateStatus(Long id);
}
启用方式
在启动类上添加:
@EnableAutoMybatis
@SpringBootApplication
public class Application { }
MySQL 驱动依赖(必须自行引入)
wiki-datasource 模块内 mysql-connector-j 为 test scope,业务项目需自行添加:
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
若未引入,会出现 ClassNotFoundException: com.mysql.cj.jdbc.Driver,这与配置是否读取成功无关。
七、模块变更文件统计(按目录)
|
目录/模块
|
主要变更
|
|
datasource/wiki-datasource
|
主从数据源全套能力 + 测试
|
|
socket/wiki-sse
|
全新 SSE 模块
|
|
config/
|
配置中心重组
|
|
security/wiki-oauth2
|
OAuth2 监控与事件
|
|
security/wiki-security
|
多机构用户登录
|
|
wiki-util
|
HttpUtils
|
|
wiki-minio
|
MinioUtils 静态化
|
|
wiki-entity
|
用户/机构字段扩展
|
|
wiki-center
|
代码生成模板、MyBatis XML
|
|
wiki-cloud
|
负载均衡配置
|
|
全模块 pom.xml
|
版本升至 1.2.0
|
|
LICENSE
|
协议更新
|
|
README / 脚本
|
文档与构建脚本更新
|
关于维基框架
维基框架(Wiki Framework)是一套面向复杂业务场景的轻量级开发框架,支持多语言、多协议、多部署形态。适用于企业级应用开发、微服务架构、云原生部署等场景。