v5.0.0 (2026-07-14)
<dependency>
<groupId>net.hasor</groupId>
<artifactId>hasor-core</artifactId>
<version>5.0.0</version>
</dependency>
5.0 将运行基线提升至 Java 17,重整 Core 的配置、对象提供与启动接口,并以 Cobble 承载公共基础设施。
影响范围
- Java 运行环境、Core 启动与扩展接口、Web 容器接入和 JSON 响应
更新内容
- 新增
- 提供
Hasor.run(args, primarySources)快速启动入口,支持绑定启动参数、登记启动类型和控制关闭钩子。 AppContext增加toBeanMap()、toTypeMap()和toNameMap(),通过 Map 按绑定 ID、类型或名称访问 Bean。- Web 增加
WebServers、WebServerConfig和WebServerProvider,提供内嵌 HTTP 容器的创建、配置与服务发现接口。
- 提供
- 优化
- 统一使用 Cobble 的公共工具、配置、资源加载、类扫描与动态代理能力。
- 对象提供接口改用 Java
Supplier,作用域与拦截器接口对接 Cobble。 - 移除独立的
Environment抽象,由AppContext直接提供配置、事件、资源加载器与类加载器访问。
- 修复
- 恢复
javax.annotation-api依赖,支持@PostConstruct和@PreDestroy生命周期注解。
- 恢复
升级说明
- 构建与运行环境至少使用 Java 17;4.x 应用需调整源码后重新编译,不能只替换依赖版本。
- 原
net.hasor.core.Settings、Scope、AOP 及公共工具相关接口已调整或迁移到 Cobble;自定义容器、作用域和拦截器需要同步修改。 - 原
Provider类型的业务扩展需按新接口改为Supplier;原先通过getEnvironment()访问的能力改由AppContext获取。 @InjectSettings统一从 Settings 读取配置;${...}写法仍会去掉包裹符,但不再通过旧 Environment 直接读取环境变量。原环境变量注入需在配置中建立对应键;使用类扫描接口时应显式传入扫描包。- 内置
JsonRenderEngine仍使用 Fastjson,但不再显式启用WriteMapNullValue;依赖输出 null 字段的接口应核对响应格式或定制渲染器。