跳到主要内容

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 增加 WebServersWebServerConfigWebServerProvider,提供内嵌 HTTP 容器的创建、配置与服务发现接口。
  • 优化
    • 统一使用 Cobble 的公共工具、配置、资源加载、类扫描与动态代理能力。
    • 对象提供接口改用 Java Supplier,作用域与拦截器接口对接 Cobble。
    • 移除独立的 Environment 抽象,由 AppContext 直接提供配置、事件、资源加载器与类加载器访问。
  • 修复
    • 恢复 javax.annotation-api 依赖,支持 @PostConstruct@PreDestroy 生命周期注解。

升级说明

  • 构建与运行环境至少使用 Java 17;4.x 应用需调整源码后重新编译,不能只替换依赖版本。
  • net.hasor.core.SettingsScope、AOP 及公共工具相关接口已调整或迁移到 Cobble;自定义容器、作用域和拦截器需要同步修改。
  • Provider 类型的业务扩展需按新接口改为 Supplier;原先通过 getEnvironment() 访问的能力改由 AppContext 获取。
  • @InjectSettings 统一从 Settings 读取配置;${...} 写法仍会去掉包裹符,但不再通过旧 Environment 直接读取环境变量。原环境变量注入需在配置中建立对应键;使用类扫描接口时应显式传入扫描包。
  • 内置 JsonRenderEngine 仍使用 Fastjson,但不再显式启用 WriteMapNullValue;依赖输出 null 字段的接口应核对响应格式或定制渲染器。