活动介绍
file-type

深入解析Spring-Mybatis 2.0.0源码结构及工作原理

4星 · 超过85%的资源 | 下载需积分: 10 | 368KB | 更新于2025-02-10 | 90 浏览量 | 3 下载量 举报 收藏
download 立即下载
标题中提到的“spring-mybatis-2.0.0源码”指的是与Spring框架集成的MyBatis版本2.0.0的源代码。MyBatis是一个流行的Java持久层框架,它提供了对象关系映射(ORM)功能。它让Java程序员能够将对象与数据库记录关联起来,并提供了更易于理解的SQL语句执行方式。 描述中提到了具体的版本号“mybatis-spring-2.0.0”和“mybatis-3.5.0”,其中“mybatis-spring-2.0.0”表示这是Spring框架与MyBatis集成的一个特定版本,而“mybatis-3.5.0”则指的是MyBatis核心库的版本号。由于MyBatis与Spring集成,因此在使用时可以利用Spring的声明式事务管理、依赖注入等特性。同时,描述中提到了“org.apache.ibatis.session.SqlSessionFactory”,这是MyBatis框架中一个非常重要的接口,用来创建SQL Session对象,后者是进行数据库操作的中心接口。 标签“spring mybatis 2.0.0”进一步明确了技术栈和版本号,这意味着我们在研究源码时需要特别关注Spring框架和MyBatis框架集成的部分,以及它们如何在这个版本中协同工作。 关于文件名称列表中的“spring-mybatis-spring-2.0.0”,它可能是源码压缩包的名称,由此可知,我们正在处理的是集成包的源代码,这个文件很可能是包含了上述提到的所有相关组件和它们的源代码文件。 详细研究该源码包,我们可以了解以下几个方面的知识点: 1. **Spring框架与MyBatis集成机制**: - 探究Spring如何通过配置方式整合MyBatis,以及Spring提供的SqlSessionFactoryBean等类的作用。 - 分析Spring与MyBatis集成时,如何利用Spring的依赖注入特性来管理MyBatis的组件。 2. **MyBatis核心机制**: - 理解MyBatis的工作原理,包括其配置文件的结构、映射文件的编写规则以及动态SQL的实现。 - 探索SqlSessionFactory和SqlSession接口的使用,以及它们在MyBatis中的重要性。 3. **事务管理**: - 学习Spring框架如何提供声明式事务管理,以及它如何与MyBatis结合使用,实现事务控制。 - 了解MyBatis内部是如何处理事务的,包括提交和回滚事务的机制。 4. **源码结构和设计模式**: - 分析源码结构,了解不同模块间的划分,以及它们之间的依赖关系。 - 研究在源码中使用的设计模式,例如工厂模式、模板方法模式等,理解它们在MyBatis框架设计中的作用。 5. **源码中的扩展点和钩子**: - 探究MyBatis提供的扩展点,例如自定义的类型处理器、拦截器、插件等,以及如何利用这些扩展点进行功能增强。 - 学习MyBatis在执行关键操作时提供的钩子点,以及如何利用这些钩子进行自定义操作。 6. **错误处理和调试**: - 研究源码中对异常的处理方式,理解MyBatis如何将底层数据库异常映射为统一的异常体系。 - 探索在开发和调试中如何有效地追踪MyBatis执行流程,以及如何定位和解决在集成使用中遇到的问题。 综合上述内容,对“spring-mybatis-2.0.0源码”进行深入研究,可以让我们更加深刻地理解Spring框架和MyBatis框架的集成细节,以及如何在企业级应用中有效地使用这一组合。通过阅读和分析源代码,开发者可以获得宝贵的一手资料,不仅能够学习到框架的设计思想和实现技术,还能在实际项目中更加自信地进行框架的选择、配置和优化。

相关推荐

filetype

2025-06-09T22:03:14.229+08:00 INFO 1 --- [ruoyi-archives] [ main] d.s.b.c.e.WelcomeLogoApplicationListener : [DUBBO] :: Dubbo (v3.2.14) : https://github.com/apache/dubbo :: Discuss group : [email protected] , dubbo version: 3.2.14, current host: 172.17.0.11 Spring Boot Version: 3.2.9 Spring Application Name: ruoyi-archives _ _ | | (_) __ _ _ __ ___| |__ ___ _____ ___ / _` | '__/ __| '_ \| \ \ / / _ \/ __| | (_| | | | (__| | | | |\ V / __/\__ \ \__,_|_| \___|_| |_|_| \_/ \___||___/ 2025-06-09T22:03:14.400+08:00 INFO 1 --- [ruoyi-archives] [ main] o.d.archives.RuoYiArchivesApplication : Starting RuoYiArchivesApplication using Java 17.0.15 with PID 1 (/ruoyi-archives.jar started by root in /) 2025-06-09T22:03:14.401+08:00 INFO 1 --- [ruoyi-archives] [ main] o.d.archives.RuoYiArchivesApplication : The following 1 profile is active: "prod" 2025-06-09T22:03:14.484+08:00 WARN 1 --- [ruoyi-archives] [ main] c.a.c.n.c.NacosConfigDataLoader : [Nacos Config] config[dataId=ruoyi-archives.yml, group=DEFAULT_GROUP] is empty 2025-06-09T22:03:14.484+08:00 WARN 1 --- [ruoyi-archives] [ main] c.a.c.n.c.NacosConfigDataLoader : [Nacos Config] config[dataId=datasource.yml, group=DEFAULT_GROUP] is empty 2025-06-09T22:03:14.484+08:00 WARN 1 --- [ruoyi-archives] [ main] c.a.c.n.c.NacosConfigDataLoader : [Nacos Config] config[dataId=application-common.yml, group=DEFAULT_GROUP] is empty 2025-06-09T22:03:16.045+08:00 INFO 1 --- [ruoyi-archives] [ main] o.apache.dubbo.rpc.model.FrameworkModel : [DUBBO] Dubbo Framework[1] is created, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.061+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.r.GlobalResourcesRepository : [DUBBO] Creating global shared handler ..., dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.160+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.dubbo.rpc.model.ApplicationModel : [DUBBO] Dubbo Application[1.0](unknown) is created, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.162+08:00 INFO 1 --- [ruoyi-archives] [ main] org.apache.dubbo.rpc.model.ScopeModel : [DUBBO] Dubbo Module[1.0.0] is created, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.202+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.context.AbstractConfigManager : [DUBBO] Config settings: {dubbo.config.mode=STRICT, dubbo.config.ignore-duplicated-interface=false}, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.203+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.context.AbstractConfigManager : [DUBBO] Config settings: {dubbo.config.mode=STRICT, dubbo.config.ignore-duplicated-interface=false}, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.221+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.utils.SerializeSecurityManager : [DUBBO] Serialize check serializable: true, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.222+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize allow list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-3.2.14.jar!/security/serialize.allowlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.249+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize allow list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-common-3.2.14.jar!/security/serialize.allowlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.250+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize blocked list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-3.2.14.jar!/security/serialize.blockedlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.294+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize blocked list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-common-3.2.14.jar!/security/serialize.blockedlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.417+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.dubbo.rpc.model.ApplicationModel : [DUBBO] Dubbo Application[1.1](unknown) is created, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.418+08:00 INFO 1 --- [ruoyi-archives] [ main] org.apache.dubbo.rpc.model.ScopeModel : [DUBBO] Dubbo Module[1.1.0] is created, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.432+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.context.AbstractConfigManager : [DUBBO] Config settings: {dubbo.config.mode=STRICT, dubbo.config.ignore-duplicated-interface=false}, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.432+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.context.AbstractConfigManager : [DUBBO] Config settings: {dubbo.config.mode=STRICT, dubbo.config.ignore-duplicated-interface=false}, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.440+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize allow list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-3.2.14.jar!/security/serialize.allowlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.440+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize allow list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-common-3.2.14.jar!/security/serialize.allowlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.440+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize blocked list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-3.2.14.jar!/security/serialize.blockedlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.441+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize blocked list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-common-3.2.14.jar!/security/serialize.blockedlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.463+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.s.c.DubboSpringInitializer : [DUBBO] Use default application: Dubbo Application[1.1](unknown), dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.463+08:00 INFO 1 --- [ruoyi-archives] [ main] org.apache.dubbo.rpc.model.ScopeModel : [DUBBO] Dubbo Module[1.1.1] is created, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.471+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.context.AbstractConfigManager : [DUBBO] Config settings: {dubbo.config.mode=STRICT, dubbo.config.ignore-duplicated-interface=false}, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.476+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize allow list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-3.2.14.jar!/security/serialize.allowlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.476+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize allow list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-common-3.2.14.jar!/security/serialize.allowlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.477+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize blocked list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-3.2.14.jar!/security/serialize.blockedlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.477+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.u.SerializeSecurityConfigurator : [DUBBO] Read serialize blocked list from jar:nested:/ruoyi-archives.jar/!BOOT-INF/lib/dubbo-common-3.2.14.jar!/security/serialize.blockedlist, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.480+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.s.c.DubboSpringInitializer : [DUBBO] Use default module model of target application: Dubbo Module[1.1.1], dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:16.480+08:00 INFO 1 --- [ruoyi-archives] [ main] o.a.d.c.s.c.DubboSpringInitializer : [DUBBO] Bind Dubbo Module[1.1.1] to spring container: org.springframework.beans.factory.support.DefaultListableBeanFactory@5b88b8e, dubbo version: 3.2.14, current host: 172.17.0.11 ___ _ _ ___ | __| __ _ ___ | || | ___ | __| ___ | _| / _` | (_-< \_, | |___| | _| (_-< |___| \__,_| /__/_ _|__/ _____ |___| /__/_ _|"""""|_|"""""|_|"""""|_| """"|_| |_|"""""|_|"""""| "`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-'"`-0-0-' -----------------------------------------------------------> :: project :: Easy-Es > :: version :: 2.0.0 > :: home :: https://easy-es.cn/ > :: community :: https://dromara.org/ > :: wechat :: 252645816, add and become muscle man! > -----------------------------------------------------------> 2025-06-09T22:03:17.306+08:00 INFO 1 --- [ruoyi-archives] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode 2025-06-09T22:03:17.310+08:00 INFO 1 --- [ruoyi-archives] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. 2025-06-09T22:03:17.355+08:00 INFO 1 --- [ruoyi-archives] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 27 ms. Found 0 Redis repository interfaces. 2025-06-09T22:03:17.511+08:00 INFO 1 --- [ruoyi-archives] [ main] c.s.b.f.a.ServiceAnnotationPostProcessor : [DUBBO] BeanNameGenerator bean can't be found in BeanFactory with name [org.springframework.context.annotation.internalConfigurationBeanNameGenerator], dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:17.511+08:00 INFO 1 --- [ruoyi-archives] [ main] c.s.b.f.a.ServiceAnnotationPostProcessor : [DUBBO] BeanNameGenerator will be a instance of org.springframework.context.annotation.AnnotationBeanNameGenerator , it maybe a potential problem on bean name generation., dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:17.521+08:00 INFO 1 --- [ruoyi-archives] [ main] c.s.b.f.a.ServiceAnnotationPostProcessor : [DUBBO] Found 1 classes annotated by Dubbo @Service under package [org.dromara.archives]: [org.dromara.archives.dubbo.ArchivesDubbonServiceImpl], dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:17.539+08:00 INFO 1 --- [ruoyi-archives] [ main] c.s.b.f.a.ServiceAnnotationPostProcessor : [DUBBO] Register ServiceBean[ServiceBean:org.dromara.archives.service.ArchivesServiceDubbon::]: Root bean: class [org.apache.dubbo.config.spring.ServiceBean]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null, dubbo version: 3.2.14, current host: 172.17.0.11 2025-06-09T22:03:17.556+08:00 WARN 1 --- [ruoyi-archives] [ main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[org.dromara.archives]' package. Please check your configuration. 2025-06-09T22:03:17.558+08:00 WARN 1 --- [ruoyi-archives] [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'org.dromara.common.mybatis.config.MybatisPlusConfiguration#MapperScannerRegistrar#0' defined in null: Could not resolve placeholder 'mybatis-plus.mapperPackage' in value "${mybatis-plus.mapperPackage}" 2025-06-09T22:03:17.591+08:00 INFO 1 --- [ruoyi-archives] [ main] .s.b.a.l.ConditionEvaluationReportLogger : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2025-06-09T22:03:17.643+08:00 ERROR 1 --- [ruoyi-archives] [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'org.dromara.common.mybatis.config.MybatisPlusConfiguration#MapperScannerRegistrar#0' defined in null: Could not resolve placeholder 'mybatis-plus.mapperPackage' in value "${mybatis-plus.mapperPackage}" at org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties(PlaceholderConfigurerSupport.java:230) ~[spring-beans-6.1.12.jar!/:6.1.12] at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.processProperties(PropertySourcesPlaceholderConfigurer.java:207) ~[spring-context-6.1.12.jar!/:6.1.12] at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.postProcessBeanFactory(PropertySourcesPlaceholderConfigurer.java:173) ~[spring-context-6.1.12.jar!/:6.1.12] at org.mybatis.spring.mapper.MapperScannerConfigurer.processPropertyPlaceHolders(MapperScannerConfigurer.java:406) ~[mybatis-spring-3.0.3.jar!/:3.0.3] at org.mybatis.spring.mapper.MapperScannerConfigurer.postProcessBeanDefinitionRegistry(MapperScannerConfigurer.java:360) ~[mybatis-spring-3.0.3.jar!/:3.0.3] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349) ~[spring-context-6.1.12.jar!/:6.1.12] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:148) ~[spring-context-6.1.12.jar!/:6.1.12] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:789) ~[spring-context-6.1.12.jar!/:6.1.12] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:607) ~[spring-context-6.1.12.jar!/:6.1.12] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.9.jar!/:3.2.9] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.9.jar!/:3.2.9] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.9.jar!/:3.2.9] at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.2.9.jar!/:3.2.9] at org.dromara.archives.RuoYiArchivesApplication.main(RuoYiArchivesApplication.java:28) ~[!/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:569) ~[na:na] at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:102) ~[ruoyi-archives.jar:na] at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:64) ~[ruoyi-archives.jar:na] at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:40) ~[ruoyi-archives.jar:na] Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'mybatis-plus.mapperPackage' in value "${mybatis-plus.mapperPackage}" at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:180) ~[spring-core-6.1.12.jar!/:6.1.12] at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) ~[spring-core-6.1.12.jar!/:6.1.12] at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:239) ~[spring-core-6.1.12.jar!/:6.1.12] at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210) ~[spring-core-6.1.12.jar!/:6.1.12] at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.java:200) ~[spring-context-6.1.12.jar!/:6.1.12] at org.springframework.beans.factory.config.BeanDefinitionVisitor.resolveStringValue(BeanDefinitionVisitor.java:293) ~[spring-beans-6.1.12.jar!/:6.1.12] at org.springframework.beans.factory.config.BeanDefinitionVisitor.resolveValue(BeanDefinitionVisitor.java:219) ~[spring-beans-6.1.12.jar!/:6.1.12] at org.springframework.beans.factory.config.BeanDefinitionVisitor.visitPropertyValues(BeanDefinitionVisitor.java:147) ~[spring-beans-6.1.12.jar!/:6.1.12] at org.springframework.beans.factory.config.BeanDefinitionVisitor.visitBeanDefinition(BeanDefinitionVisitor.java:85) ~[spring-beans-6.1.12.jar!/:6.1.12] at org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties(PlaceholderConfigurerSupport.java:227) ~[spring-beans-6.1.12.jar!/:6.1.12] ... 20 common frames omitted 2025-06-09T22:03:17.647+08:00 WARN 1 --- [ruoyi-archives] [ Thread-6] c.a.nacos.common.notify.NotifyCenter : [NotifyCenter] Start destroying Publisher 2025-06-09T22:03:17.647+08:00 WARN 1 --- [ruoyi-archives] [ Thread-4] c.a.n.common.http.HttpClientBeanHolder : [HttpClientBeanHolder] Start destroying common HttpClient 分析问题给出解决办法