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