v5.3.0 (2026-10-05)
<dependency>
<groupId>net.hasor</groupId>
<artifactId>hasor-web</artifactId>
<version>5.3.0</version>
</dependency>
Changes
- New Features
- Support method-level
@MappingToroutes. - Support class-level path prefixes.
- Support automatic route discovery.
- Allow the same path with different HTTP methods.
- Check route conflicts at startup.
- Add MVC interceptors through
HandlerInterceptor. - Add centralized exception handling through
ExceptionHandler. - Add
Invoker.setSkipRender()to skip result rendering. - Support
CacheControlpolicies for static resources. - Support
@Injecton@Beanfactory parameters.
- Support method-level
- Bug Fixes
- Initialize unreferenced singleton
@Beaninstances at startup. - Render exception handler results from void Actions.
- Clear the parameter cache when requests end.
- Fix a null-pointer error when resolving content types without a matched Action.
- Fix missing or incorrect Web URL logs at Boot startup.
- Initialize unreferenced singleton
- Improvements
- Unify MVC result rendering.
- Separate asynchronous error handling from completion.
- Embed and isolate Boot Loader runtime dependencies.
- Upgrade Cobble to
5.0.4. - Move IDE code style configurations to
community.
Upgrade Notes
ResourceBinder.cacheControlnow acceptsCacheControl. See static resources.- Singleton
@Beaninstances and theirinitMethodcallbacks now initialize at startup. Review initialization timing. - Custom
Invokerimplementations must providesetSkipRender()andisSkipRender(). - Custom
WebApiBinderimplementations must providebindInterceptor(...)andaddExceptionHandler(...). - Direct
RenderProcessorcalls must runinitInvoker(invoker)first, then render withinvoke(invoker, finalResult). - Custom
AsyncInvocationWorkerimplementations must usefinish(boolean)for completion and redispatch. See asynchronous requests.