This is a major update featuring a significant overhaul of the core IoC container (bean module). It introduces powerful new features for bean creation, enhances stability and performance through extensive refactoring, and fixes several critical bugs. Due to the scale of these internal changes, thorough testing is recommended after upgrading.
✨ New Features
- Fine-grained Scope Control for
FactoryBean: TheFactoryBeaninterface now includes anisSingleton()method. This allows a factory to have fine-grained control over whether the object it produces is a shared singleton (default) or a new prototype instance for each request.
🚀 Improvements
- Bean Creation & Lifecycle:
- The internal logic for bean creation, especially for
FactoryBeanand factory methods, has been refactored for clarity and robustness. - Implemented robust, thread-safe singleton creation using a double-checked locking mechanism.
- Added a concurrency test to verify thread-safe singleton bean creation.
- The internal logic for bean creation, especially for
- Wildcard Utilities:
- The wildcard matching engine has been significantly refactored for improved readability and maintainability by centralizing logic into a new
WildcardEngine. - A new comprehensive, data-driven test suite has been added to ensure its stability.
- The wildcard matching engine has been significantly refactored for improved readability and maintainability by centralizing logic into a new
- AsEL (Aspectran Expression Language):
- The AsEL evaluation mechanism has been refactored for a cleaner design and better extensibility, including improvements to token parsing and item evaluation logic.
- Performance & Thread-Safety:
- Improved performance and thread-safety in the
AspectRegistryby optimizing data structures and iteration. - Enhanced thread-safety in
CoreServiceHolderby usingConcurrentHashMap.
- Improved performance and thread-safety in the
- Exception Handling:
- Exception handling for aspect advice has been improved to traverse the exception chain, allowing handlers to catch underlying cause exceptions.
- Request Handling:
- The default character encoding for web requests has been changed to UTF-8 to align with modern web standards.
- Code Quality & Documentation:
- Improved exception messages and Javadocs across multiple core modules to enhance developer experience.
🐞 Bug Fixes
FactoryBean/Factory-MethodLifecycle: Fixed a critical bug where the factory bean instance was incorrectly injected as a dependency instead of the object it produces.- AsEL Runtime Evaluation: Fixed a critical bug that prevented dynamically parsed AsEL tokens (e.g.,
#{field:...}) from being evaluated at runtime. - Wildcard Escaping: Fixed a bug in the wildcard parser where escaped characters (e.g.,
\*) were not correctly treated as literals. - Request Size Limit: Fixed a bug in
WebRequestBodyParserwhere the request size limit could be bypassed with multi-byte encodings. - File Parameter Handling: Fixed an issue where
FileParameter.getContentType()could return null. ItemRuleProperties Handling: Fixed a bug that caused incorrect handling ofPropertiesvalues inItemRule.RedirectRule: Fixed a bug wheregetExcludeEmptyParameters()returned the wrong value.
Juho Jeong NEWS
Release