跳到主要内容

v5.1.0 (2026-09-08)

<dependency>
<groupId>net.hasor</groupId>
<artifactId>hasor-core</artifactId>
<version>5.1.0</version>
</dependency>

本版本加强 Bean 创建过程的异常诊断,完善 Web 根路径与静态资源访问,并调整启动扩展的模块归属。

影响范围

  • Core Bean 创建和启动类型注册、Web 路由、静态资源与 Servlet 生命周期

更新内容

  • 新增
    • 增加 CircularDependencyException,在 Bean 创建出现循环依赖时报告依赖链,覆盖按类型、构造器和自定义对象提供器创建的场景。
    • ResourceFilter 支持 URL 前缀和欢迎文件,将指定访问路径映射到资源目录。
    • RuntimeListener 支持通过 ServletContext 中的工厂函数创建 AppContext,便于外部启动流程接入。
  • 优化
    • 启动类型注册识别已安装模块的标记,避免对已登记的模块再次创建和绑定。
    • 内嵌 HTTP 容器接口移出 Web 内核,使请求处理与容器启动职责分离。
  • 修复
    • 修复根路径 / 被路由格式校验拒绝的问题。
    • 静态资源查找改用应用内请求路径,避免部署在非根 contextPath 时将上下文路径误作资源路径。
    • Servlet 上下文销毁时检查初始化状态,避免初始化未完成又触发空引用异常。

升级说明

  • net.hasor.web.http 下的 WebServerWebServersWebServerConfig 和容器 SPI 移入 hasor-boot-webnet.hasor.boot.web 包;直接使用这些类型时需要更新依赖与 import。
  • Core 不再默认装配原 StartupModule 和注解 AOP 扩展模块;依赖 hasor.startup 或原 net.hasor.core.exts.aop 的应用需调整启动配置或接入相应扩展。通过 Core 编程式绑定拦截器的能力仍保留。
  • 循环依赖现在会明确报错并给出依赖链,应修正依赖关系,而不是依赖递归创建对象。
  • ResourceFilter(loader, urlPrefix) 默认欢迎文件为 index.html,也可用三参数构造器指定文件;原单参数构造方式保留。