- Separate Feign and WebClient-related configurations into separate configuration classes
- Added FeignTraceAutoConfiguration and WebClientTraceAutoConfiguration classes
- Optimized the use of conditional annotations and improved configuration flexibility
- Added logging to facilitate tracking of configuration loading
-Remove the name definition of the MessageSource bean and use the default name
-Simplified the parameters of the i18nMessageResolver method, and directly use the MessageSource type
- Unused constants MESSAGE_SOURCE_BEAN_NAME were removed
- Deleted the config/tasks/sourceTask.gradle.kts file, removed the task of creating source jar files
- Added MapStruct dependency in gradle/libs.versions.toml, version 1.6.3
- Removed internationalized message references in the DeleteByIdsReq and PageQueryReq classes
- Removed the corresponding entry in the associated messages.properties file
- Validation annotations are retained, but specific error messages are removed
- Added the WebMvcExceptionI18nProperties class to configure internationalization-related properties
- Modify the WebMvcExceptionProperties class and add the enable property to control whether internationalization is enabled
- The I18nGlobalExceptionHandler class is added to handle internationalization exceptions
- Modify the GlobalExceptionHandler class to support non-internationalization exception handling
- The I18nGlobalException and I18nInternalException classes have been added for internationalization exceptions
- Modify the InternalException class to simplify the structure of the internal exception
- The BaseResult class has been added as a basic unified response encapsulation class
- Added I18nResult class to provide response encapsulation for internationalization support
- Refactor the R class so that it inherits from BaseResult
- Added the ResponseInformation API to define the standard structure of response information
- Added ResultExtender Fun Interface for extended result mapping
- Rename the InternalInformation interface to I18nInternalInformation
- Rename the ResponseInformation interface to I18nResponseInformation
- Update the relevant references in the I18nBaseException class
Change the project name of the validation module from "forgeboot-validation" to "forgeboot-webmvc-validation",
to maintain consistency with other module naming and enhance the maintainability of the project.
- Added tryOrNull and tryOrFallBack extension functions for graceful exception handling
- A new enumValueOfOrNull extension function is added to safely convert strings to enumerated values
- Rename Logger.kt to LoggerExtensions.kt to better reflect its role as a log extension class
- Updated build.gradle.kts to change slf4j-api dependencies to compileOnly to reduce runtime dependencies
- Rename the delete method to deleteById to explicitly delete by ID
- Rename the delete(ids) method to deleteByIds, explicitly indicating bulk deletion- Rename the delete(entity) method to deleteByOne, explicitly deleting a single entity
- Rename the delete(entities) method to deleteByAll to explicitly delete entities in bulk
- Removed unused MapStruct dependencies
- Added .gitattributes file for config file line terminators and binary file processing
- Added a .gitignore file to ignore project build output and IDE-related files
- Added the CrudRepositorySpec API to define CRUD operations and normalized queries
- Implement the CrudServiceImplSpec class to provide a generic implementation of CRUD services
- Define the CrudServiceSpec interface to standardize the operation of the CRUD service
- Add .gitattributes and .gitignore files to configure the code style and ignore files
- Create a build.gradle.kts file and add project dependencies
- Added the WebMvcExceptionProperties class to configure exception handling related properties: Create the WebMvcExceptionAutoConfiguration class for automatic configuration
- Add the GlobalException and InternalException classes as the base classes for global and internal exceptions
- Implement the GlobalExceptionHandler class to handle all kinds of exceptions in a unified manner
- Added internationalization support and created multilingual message files
- Configure the Gradle build script and project structure
- Added the PageResultExtension.kt file to provide the mapping and conversion function of pagination results
- Updated internationalization message references in the DeleteByIdsReq and PageQueryReq files
- Modify the R.kt file to add default success and failure response information objects
- Simplified project structure by removing redundant internationalized message files
- The responseI8nMessageArgs property is added to the ResponseInformation API to obtain the internationalization message parameters
- Rename the I18nBaseException file to change its implementation language from Java to Kotlin
- Update the errorI18nMessageArgs property in I18nBaseException so that it returns as a nullable array
- Added message attribute files in Chinese, English, and Chinese simplified
- Error messages for paginated queries, result responses, and delete operations are defined
- Provide the basis for subsequent internationalization support and error handling
- Added annotations such as ValidatedForAdd and ValidatedForUpdate for verification of different operations
- Add a ValidationGroups object to define the validation grouping interface
- Implement the ValidationUtils utility class to provide validation functionality
- Create .gitattributes and .gitignore files to standardize the code repository
- Add dependencies related to build.gradle.kts configuration validation
- The SortDirection enumeration class has been added to sort directions
- Added the PageQueryReq pagination query request class
- Added the DeleteByIdsReq deletion request class
- Added the DynamicSpecificationBuilder dynamic query building tool class
- Added the PageResult pagination result class
- Added the R Unified Response Encapsulation class
- Added the SortCondition sorting condition class
- Added relevant internationalization resource files
- Remove invalid Maven repositories
- Add the Kotlin kapt plugin
- Modify the version number increment rule
- Update the submodule name and structure
- Adjusted the inclusion of the internationalization (i18n) and trace modules
- Remove references to common modules
- Added I18nKeyGenPlugin Gradle plugin for generating internationalization key files - Refactoring the internationalization module to separate the API and implementation code
- Updated the project structure to create new submodules to support internationalization
- Modify the build configuration to add the necessary dependencies and properties
- Migrated the RequestIdProvider interface from the forgeboot-common-result module to the forgeboot-trace-api module
- Refactored the TraceAutoConfiguration class to use a new package structure
- Create the forgeboot-trace-api, forgeboot-trace-autoconfigure, and forgeboot-trace-impl modules
- Update the location of the relevant classes and files to accommodate the new module structure
- Add the apiSuffix property to configure the API suffix
- Update VersionAutoConfiguration and ApiVersionRequestMappingHandlerMapping to support the new configuration
- Optimized the version mapping logic to support the combination of prefix and suffix
- Adjust the VersionAutoConfiguration class to move dependency injection into the method parameters
- Add Int.MIN_VALUE as the priority of the API version request mapping, ensuring that it is higher than the default mapping
- Change the configuration prefix of VersionProperties to "forgeboot.version"
- After you create an ApiVersionRequestMappingHandlerMapping instance, assign it to the mapping variable
- This change may help to better manage request mapping, handler mapping, and improve maintainability of your code
- Inject VersionProperties and CorsConfigurationSource in VersionAutoConfiguration
- Updated the apiVersionRequestMappingHandlerMapping method to add support for cross-origin configuration
- Remove unnecessary comments from R classes
- Removed unnecessary comments and redundant code
- Optimized how success and failure response objects are created - added a new extension field extra to save extension information
- Implemented the toMutableFlatMap and toFlatMap methods to convert the response object to Map
- Refactored the way ResultExtender is used to improve scalability
- Removed the responseI8nMessageArgs property that was not used in the ResponseInformation interface
- In the R.kt file, rename the args parameter to i18bArgs to improve code readability and consistency
- Updated related function calls, using the new i18bArgs parameter
- Add forgeboot-common result processing related submodules - Implement unified response encapsulation class R and related interfaces
- Integrated international message parsing and request ID generation function
- Update project configuration to support the construction and release of new modules
- Implement RequestIdUtil tool class generation and storage request ID
- Add TraceAutoConfiguration Automatic Configuration Class
- Implementing RequestIdFilter and ReactiveRequestIdFilterRequestIdInterceptor interceptor support Feign clients
-Filter
- Add Feign to implement WebClientRequestIdFilter to support WebClient
- Add RequestIdTaskDecorator Decorator to support asynchronous thread pooling
- Added Request extension function to determine whether requests are skipped
- Add .gitattributes files, set file line breaks and binary files to handle - Create .gitignore files, ignore unnecessary project files and directories
- Create a new build.gradle.kts file, configure root project properties and dependencies
- Delete API dependencies in modules such as forgeboot-core, forgeboot-i18n
- Add submodule dependencies in the root project
- Optimize settings.gradle.kts, add forgeboot-webflux module
Make sure it executes before all other request mapping handlers by setting the order property of ApiVersionRequestMappingHandlerMapping to Int.MIN_VALUE. This ensures that version control requests are processed first, and improves the system's response speed and efficiency.
- Added USE_CONFIGURATION_PROCESSOR project flag
- Add API dependency to Core.EXTENSION in forgeboot-core
- Rename the I18nProperties file and convert it to Java class
- Update forgeboot-i18n dependency and add configuration processor
- Add spring-boot-configuration-processor dependency in libs.versions.toml
- Update root project configuration, support configuration processor
- Convert the I18nBaseException class from a Java file to a Kotlin file
- Optimized Kotlin syntax for class definitions and constructors
- Use val to get property values
- Added @Transient annotation to replace transient keywords in Java
- Added I18nProperties configuration class to define international related properties
- Implement I18nAutoConfiguration automatic configuration class, providing international message sources and local resolvers
- Added the I18nWebConfiguration configuration class to register language switching interceptors
- Added InternalInformation and ResponseInformation interfaces to extend and provide international information to the outside world
- Implement I18nBaseException class to handle internationalization-related exceptions
- Add ReactiveLocaleResolver filter to parse language information in WebFlux requests
- Create a WebFluxLocaleResolver interface to define a local resolver for WebFlux type
- Updated project
- Added MethodRecording annotation to record method execution information
- Implement MethodRecordingAspect for method recording
- Add LoggerAutoConfiguration Automatic Configuration Class
- Introduce CoroutineLogger coroutine log object - Update dependencies and configure Spring Boot AOP
- Added forgeboot-core module, including core extension functions
-Refactor the forgeboot-webmvc module and change it to Spring Boot Starter structure - Update project configuration and dependencies - Add log extension function