首页 文章 精选 留言 我的

精选列表

搜索[V模型],共10000篇文章
优秀的个人博客,低调大师

维基框架(WikiFw)重大更新 v1.2.0 发布更新日志

发布日期: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 模块(全新) SseEmitterConnectionService— SSE 连接管理 SseEmitterCallback— 发布订阅回调 EmitterConstant— 常量定义 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 工具 HttpUtils— 新增 HTTP 请求工具类(约 400 行) 6. wiki-security — 用户与机构 IUserDetailsService— 用户详情服务接口 切换机构相关接口(需业务端实现) SecurityUserEntity多机构支持重构 7. 实体字段 AbstractUserEntity— 增加员工 ID OrganizationEntity— 增加统一社会信用代码 8. 脚本与文档 wiki.ps1— Windows 构建脚本 README.md/README.en.md— 文档大改 assets/wiki.png— 项目配图更新 二、优化了哪些 wiki-datasource(重点优化) 配置绑定 去掉MybatisConfig上多余的@Configuration,避免重复 Bean、配置读不到 Mapper 扫描改为Environment+Binder,解决BeanDefinitionRegistryPostProcessor过早读配置、@RefreshScope报错等问题 主从切换规则 有@Master→ 主库 有@Slave→ 从库 无注解 →默认主库(不再靠类名含slave猜测) 每次切换打 INFO 日志:数据源切换: MASTER/SLAVE -> xxxMapper.method() 双 SqlSessionFactory primarySessionFactory(主库)+sessionFactory(从库) 主从可分别配置 Mapper 包和 XML 路径 MybatisConfig支持master/slave嵌套配置 稳定性 sqlSessionTemplate明确绑定primarySessionFactory SqlSessionFactory 初始化失败直接抛异常,避免返回 null wiki-minio MinioUtils方法全部改为静态方法,调用更简单(约 1100 行重构) wiki-oauth2 授权服务拆分,增加 Metrics 与事件体系,便于监控和排查 wiki-cloud 新增LoadBalancerRequestTransformerConfig,负载均衡请求转换 依赖与协议 MySQL 驱动改为testscope,避免 GPL 协议冲突 LICENSE 更新为木兰宽松许可证 三、调整了哪些 模块 调整内容 版本 全项目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)是一套面向复杂业务场景的轻量级开发框架,支持多语言、多协议、多部署形态。适用于企业级应用开发、微服务架构、云原生部署等场景。 官网:https://framewiki.com Gitee:https://gitee.com/wiki-framework GitHub:https://github.com/wiki-framework 示例项目:https://gitee.com/cdkjframework/framewiki-example 📄 许可证:MulanPSL-2.0(木兰宽松许可证,第2版)

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册