BUG收集

BUG收集
mengnankkzhou配置bug
MyBatis bug
- factoryBeanObjectType的兼容性问题
Spring Boot 在 3.2 版本中更新了 FactoryBeanRegistrySupport#getTypeForFactoryBeanFromAttributes 方法,它要求 factoryBeanObjectType 必须是 Class<?> 或 ResolvableType,绝不接受 String
旧版本的 MyBatis-Spring 在 ClassPathMapperScanner.processBeanDefinitions() 中将 beanClassName(一个 String)赋给了 factoryBeanObjectType
slove:
我们使用MyBatis-Plus starter3.5.5。然后现在基本都要升级成springboot3,因为springaialibaba等框架也是需要3的
然后我们分模块的时候,为了避免@MapperScan重复扫描,我们只在业务模块进行mybatisplus的导入,然后common模块就只导入一个annotion。不到人core
防止出现重复扫描的问题。
nacos配置bug
- 缺少NacosShutdownHook,然后导致nacos-clint无法运行,添加nacos钩子然后让其更美观的关闭
关闭通知中心,然后强制关闭所有的后台线程
reason:
Spring 会先销毁 Bean,然后执行注册的 ShutdownHook,如果 Nacos 没有注册自己的钩子,那它的后台线程就会存活到 JVM 强制退出。
Nacos 客户端(nacos-client)在正常退出时会通过 ShutdownHook 释放 HttpClient、长连接、定时任务等资源。
如果没有这个钩子,DefaultHttpClientFactory 之类的类无法加载或初始化不完整,就会出现 NoClassDefFoundError,或者后台线程挂起不退出。
slove:
所以我们需要在应用的时候手动注册一个nacos的关闭的钩子,通知中心 → 释放 HttpClient → 停止定时任务
然后为了防止还有存活,再强制关闭所有的后台线程






