spring-boot-starter
spring-boot-starter copied to clipboard
:sparkles: Support MyBatis for Spring Boot 3 Native
trafficstars
Premise
org.springframework.experimental:spring-aotRepository: https://github.com/spring-attic/spring-native : EOLorg.springframework.experimental:spring-aotRepository: https://github.com/spring-attic/spring-native : This project is now superseded by Spring Boot 3+ official native support, see the related reference documentation for more details.org.springframework.experimental:spring-aotRepository: https://github.com/spring-attic/spring-native : Only supports Spring Boot 2, not Spring Boot 3org.mybatis.spring.native:mybatis-spring-native-coreRepository: https://github.com/mybatis/spring-native : Usedorg.springframework.experimental:spring-aot
前提
org.springframework.experimental:spring-aot仓库: https://github.com/spring-attic/spring-native : 寿命终止org.springframework.experimental:spring-aot仓库: https://github.com/spring-attic/spring-native : 该项目现已被 Spring Boot 3+ 官方原生支持所取代,请参阅 相关参考文档 了解更多详情。org.springframework.experimental:spring-aot仓库: https://github.com/spring-attic/spring-native : 仅支持 Spring Boot 2,不支持 Spring Boot 3org.mybatis.spring.native:mybatis-spring-native-core仓库: https://github.com/mybatis/spring-native : 使用了org.springframework.experimental:spring-aot
Principle
- Use the following configuration file types as much as possible to avoid affecting the project in non native scenarios
as much as possible
reflect-config.jsonjni-config.jsonresource-config.jsonproxy-config.jsonserialization-config.jsonpreset-classes-config.json
- Try to automatically configure and use it out of the box to avoid burdening users
原则
- 尽量多的使用以下配置文件类型,尽可能的避免在非 native 场景下影响项目
reflect-config.jsonjni-config.jsonresource-config.jsonproxy-config.jsonserialization-config.jsonpreset-classes-config.json
- 尽量自动配置,开箱即用,避免对使用者造成负担
New Features
- Increase Native pipeline construction and product testing, including: Ubuntu/MacOS GraalVM JDK 17/21/22
- When adding native builds,
mybatis.comnfig-locationis configured to recognize and automatically import resource files - When adding native builds,
mybatis.mapper-locationsis configured to recognize and automatically import resource files - Add dynamic proxy for Mapper interface when building Native
- When adding native builds, the default type of returned data is automatically reflected, including:
java.util.ArrayListjava.util.HashMapjava.util.TreeSetjava.util.HashSet
- When adding native builds, return data with custom types for automatic reflection
- When adding native builds, ibatis logging automatically reflects:
org.apache.ibatis.logging.slf4j.Slf4jImplorg.apache.ibatis.logging.commons.JakartaCommonsLoggingImplorg.apache.ibatis.logging.log4j2.Log4j2Implorg.apache.ibatis.logging.log4j.Log4jImplorg.apache.ibatis.logging.jdk14.Jdk14LoggingImplorg.apache.ibatis.logging.nologging.NoLoggingImpl
- When adding native builds, the required class reflection is:
org.apache.ibatis.plugin.Interceptororg.apache.ibatis.javassist.util.proxy.ProxyFactoryorg.apache.ibatis.scripting.xmltags.XMLLanguageDriverorg.apache.ibatis.scripting.defaults.RawLanguageDriverorg.mybatis.spring.SqlSessionFactoryBeanorg.apache.ibatis.session.Configurationorg.mybatis.spring.boot.autoconfigure.SpringBootVFS
- Add static resource import when building Native
org/apache/ibatis/builder/xml/mybatis-3-config.dtdorg/apache/ibatis/builder/xml/mybatis-3-mapper.dtdorg/apache/ibatis/builder/xml/mybatis-config.xsdorg/apache/ibatis/builder/xml/mybatis-mapper.xsd
- When adding native builds, MyBatis annotation examples are supported
- When adding native builds, MyBatis XML examples support
新功能
- 增加 Native 流水线构建、产物测试,包含:Ubuntu/MacOS GraalVM JDK 17/21/22
- 增加 Native 构建时,
mybatis.config-location配置识别,自动执行资源文件导入 - 增加 Native 构建时,
mybatis.mapper-locations配置识别,自动执行资源文件导入 - 增加 Native 构建时,Mapper 接口动态代理
- 增加 Native 构建时,返回数据默认类型自动反射,包含:
java.util.ArrayListjava.util.HashMapjava.util.TreeSetjava.util.HashSet
- 增加 Native 构建时,返回数据自定义类型自动反射
- 增加 Native 构建时,ibatis logging 自动反射:
org.apache.ibatis.logging.slf4j.Slf4jImplorg.apache.ibatis.logging.commons.JakartaCommonsLoggingImplorg.apache.ibatis.logging.log4j2.Log4j2Implorg.apache.ibatis.logging.log4j.Log4jImplorg.apache.ibatis.logging.jdk14.Jdk14LoggingImplorg.apache.ibatis.logging.nologging.NoLoggingImpl
- 增加 Native 构建时,所需 class 反射:
org.apache.ibatis.plugin.Interceptororg.apache.ibatis.javassist.util.proxy.ProxyFactoryorg.apache.ibatis.scripting.xmltags.XMLLanguageDriverorg.apache.ibatis.scripting.defaults.RawLanguageDriverorg.mybatis.spring.SqlSessionFactoryBeanorg.apache.ibatis.session.Configurationorg.mybatis.spring.boot.autoconfigure.SpringBootVFS
- 增加 Native 构建时,静态资源导入
org/apache/ibatis/builder/xml/mybatis-3-config.dtdorg/apache/ibatis/builder/xml/mybatis-3-mapper.dtdorg/apache/ibatis/builder/xml/mybatis-config.xsdorg/apache/ibatis/builder/xml/mybatis-mapper.xsd
- 增加 Native 构建时,MyBatis annotation 示例支持
- 增加 Native 构建时,MyBatis xml 示例支持