01. spring 源码环境搭建【ASIA读源码】

本文详细介绍如何在IDEA 2020.02环境下搭建Spring 5.2.0源码的学习环境,包括Java环境配置、Spring源码下载、Gradle安装与配置、阿里云Maven仓库设置及源码编译过程。

01. spring 源码环境搭建【ASIA读源码系列】

本文安装前提:
IDEA 版本:2020.02 【很重要】
spring 5.2.0

强烈建议把IDEA升级成最新版本2020.02,这个很重要,之前自己用的是IDEA 2017版本,spring导入idea时各种报错,搞了一天也没搞定,后来升级到2020.02就一路顺畅。根本原因是IDEA版本太老的话,其中gradle各种插件对应不上。

一、环境准备


1.1 需要java环境 >= jdk8;
1.2 下载spring源码
地址:
https://github.com/spring-projects/spring-framework/tree/v5.2.0.RELEASE

下载对应版本,本次下载的5.2.0(可以直接git clone或者下载对应的zip)
本次下载了5.2.0 zip
在这里插入图片描述
1.3、gradle安装;

1.3.1 https://gradle.org/releases/

下载对应版本,最好spring目录下编译gradle保持一致

cat /gradle/wrapper/gradle-wrapper.properties

在这里插入图片描述
gradle版本下载
1.3.2 解压安装包并配置环境

unzip gradle-5.6.2-bin.zip

1.3.3 配置环境变量

vi ~/.bashrc

添加内容如下:

GRADLE_HOME=/your_Path/gradle-5.6.2
export GRADLE_HOME
export PATH=$PATH:$GRADLE_HOME/bin

环境

source ~/.bashrc

查看安装是否成功,显示如下,则为安装成功

gradle -version

查看安装是否成功
至此,gradle安装完成。

二、spring源码编译


2.1 编译前文件修改

2.1.1 修改build.gradle中repositories,添加阿里源,方便后面编译时加速。

 maven {url "https://maven.aliyun.com/nexus/content/groups/public"}

在这里插入图片描述
2.1.2 修改spring工程目录下settings.gradle。

 maven {url 'https://maven.aliyun.com/repository/gradle-plugin'}

在这里插入图片描述

2.1.3 修改buildSrc/build.gradle,添加阿里源,方便后面编译时加速。

cd spring-framework-5.2.0/buildSrc
vi build.gradle

具体如下

maven {url 'https://maven.aliyun.com/nexus/content/repositories/google/'}
maven {url 'https://maven.aliyun.com/nexus/content/groups/public'}
maven {url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}
maven {url 'https://maven.aliyun.com/repository/gradle-plugin'}
/*mavenCentral()
gradlePluginPortal()*/

在这里插入图片描述

2.2 spring编译

可以参考spring目录下导入idea说明:
cat import-into-idea.md
分别编译spring-oxm及spring-core

./gradlew :spring-oxm:compileTestJava
./gradlew :spring-core:compileTestJava

编译完成如图所示:
在这里插入图片描述

2.3 导入idea

导入方法如下:

Import into IntelliJ (File -> New -> Project from Existing Sources -> Navigate to directory -> Select build.gradle)

在这里插入图片描述
至此,等待IDEA编译,需要一段时间,编译成功提示如下。
在这里插入图片描述

三、验证编译是否成功

关键把IDEA升级

错误3

`Error:No such property: GradleVersion ``for` `class: JetGradlePlugin`

解决办法修改:

gradle->wrapper下gradle-wrapper.properties

distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-bin.zip

maven {url ‘https://maven.aliyun.com/nexus/content/repositories/google/’}
maven {url ‘https://maven.aliyun.com/nexus/content/groups/public’}
maven {url ‘https://maven.aliyun.com/nexus/content/repositories/jcenter’}
maven {url ‘https://maven.aliyun.com/repository/gradle-plugin’}

repositories {
maven { url “https://repo.spring.io/plugins-release” }
maven {url “https://plugins.gradle.org/m2/”}
}

0.9.15

引用:
https://www.cnblogs.com/garfieldcgf/p/12591157.html
https://juejin.im/post/6854573219827941390

.nbcio.modules.flowable.flow.FlowableConfig:49 - ╔══════════════════════════════════════════╗ 2025-09-03 15:09:14.749 [main] INFO com.nbcio.modules.flowable.flow.FlowableConfig:50 - ║ 正在配置Flowable引擎 (v6.7.2) 2025-09-03 15:09:14.749 [main] INFO com.nbcio.modules.flowable.flow.FlowableConfig:51 -Spring Boot版本: 2.4.x 2025-09-03 15:09:14.749 [main] INFO com.nbcio.modules.flowable.flow.FlowableConfig:52 - ╚══════════════════════════════════════════╝ 2025-09-03 15:09:14.750 [main] INFO com.nbcio.modules.flowable.flow.FlowableConfig:59 - ✅ 数据源和事务管理器已正确注入 2025-09-03 15:09:14.769 [main] INFO com.nbcio.modules.flowable.flow.FlowableConfig:68 - 🔗 数据源信息: jdbc:mysql://192.168.8.3:3306/yaxt-micro?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai 2025-09-03 15:09:14.769 [main] INFO com.nbcio.modules.flowable.flow.FlowableConfig:75 - 🔀 事务管理器: JpaTransactionManager 2025-09-03 15:09:14.769 [main] INFO com.nbcio.modules.flowable.flow.FlowableConfig:79 - 🔄 数据库Schema更新策略: true (自动更新) 2025-09-03 15:09:14.769 [main] INFO com.nbcio.modules.flowable.flow.FlowableConfig:81 - 💾 数据库类型: mysql 2025-09-03 15:09:14.769 [main] INFO com.nbcio.modules.flowable.flow.FlowableConfig:86 - 🚫 已禁用IDM引擎和事件注册表 2025-09-03 15:09:15.013 [main] INFO com.nbcio.modules.flowable.flow.FlowableConfig:100 - ✅ Flowable引擎初始化成功! 2025-09-03 15:09:15.013 [main] INFO com.nbcio.modules.flowable.flow.FlowableConfig:101 - 🔧 Flowable版本: 6.7.2.0 2025-09-03 15:09:15.014 [main] INFO com.nbcio.modules.flowable.flow.FlowableConfig:102 - ⏱️ 启动耗时: 15657 ms 2025-09-03 15:09:15.741 [main] INFO o.f.c.engine.impl.async.DefaultAsyncTaskExecutor:154 - Creating thread pool queue of size 2048 2025-09-03 15:09:15.742 [main] INFO o.f.c.engine.impl.async.DefaultAsyncTaskExecutor:159 - Creating thread factory with naming pattern flowable-async-job-executor-thread-%d 2025-09-03 15:09:15.744 [main] INFO o.f.c.engine.impl.async.DefaultAsyncTaskExecutor:164 - Creating executor service with corePoolSize 8, maxPoolSize 8 and keepAliveTime 5000 2025-09-03 15:09:15.982 [main] ERROR o.f.common.engine.impl.interceptor.CommandContext:125 - Error while closing command context java.lang.NullPointerException: null at org.flowable.engine.impl.db.ProcessDbSchemaManager.schemaUpdate(ProcessDbSchemaManager.java:232) at org.flowable.engine.impl.SchemaOperationsProcessEngineBuild.execute(SchemaOperationsProcessEngineBuild.java:54) at org.flowable.engine.impl.SchemaOperationsProcessEngineBuild.execute(SchemaOperationsProcessEngineBuild.java:28) at org.flowable.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:67) at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:140) at org.flowable.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:114) at org.flowable.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:72) at org.flowable.engine.impl.interceptor.BpmnOverrideContextInterceptor.execute(BpmnOverrideContextInterceptor.java:26) at org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:53) at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:105) at org.flowable.common.spring.SpringTransactionInterceptor.lambda$execute$0(SpringTransactionInterceptor.java:57) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) at org.flowable.common.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:57) at org.flowable.common.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30) at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56) at org.flowable.engine.impl.ProcessEngineImpl.<init>(ProcessEngineImpl.java:83) at org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl.buildProcessEngine(ProcessEngineConfigurationImpl.java:917) at org.flowable.spring.SpringProcessEngineConfiguration.buildProcessEngine(SpringProcessEngineConfiguration.java:76) at org.flowable.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:59) at org.flowable.spring.ProcessEngineFactoryBean.getObject(ProcessEngineFactoryBean.java:32) at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:169) at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:101) at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1828) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getObjectForBeanInstance(AbstractAutowireCapableBeanFactory.java:1265) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:334) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:884) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788) at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:538) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1336) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1176) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:884) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:227) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1203) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1307) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227) at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:884) at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:788) at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:227) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1356) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1203) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) at org.springframework.context.event.AbstractApplicationEventMulticaster.retrieveApplicationListeners(AbstractApplicationEventMulticaster.java:247) at org.springframework.context.event.AbstractApplicationEventMulticaster.getApplicationListeners(AbstractApplicationEventMulticaster.java:204) at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:134) at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:404) at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:410) at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:361) at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:898) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:554) at org.springframework.cloud.context.named.NamedContextFactory.createContext(NamedContextFactory.java:136) at org.springframework.cloud.context.named.NamedContextFactory.getContext(NamedContextFactory.java:101) at org.springframework.cloud.context.named.NamedContextFactory.getInstance(NamedContextFactory.java:145) at org.springframework.cloud.openfeign.FeignClientFactoryBean.get(FeignClientFactoryBean.java:264) at org.springframework.cloud.openfeign.FeignClientFactoryBean.feign(FeignClientFactoryBean.java:97) at org.springframework.cloud.openfeign.FeignClientFactoryBean.getTarget(FeignClientFactoryBean.java:320) at org.springframework.cloud.openfeign.FeignClientFactoryBean.getObject(FeignClientFactoryBean.java:310) at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:169) at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:101) at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1828) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getObjectForBeanInstance(AbstractAutowireCapableBeanFactory.java:1265) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) at org.springframework.beans.factory.support.DefaultListableBeanFactory.addCandidateEntry(DefaultListableBeanFactory.java:1532) at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1489) at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1270) at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1227) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:640) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:130) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:399) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:593) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:405) at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) at org.jeecg.JeecgSystemCloudApplication.main(JeecgSystemCloudApplication.java:66) 2025-09-03 15:09:15.995 [main] WARN o.s.c.a.AnnotationConfigApplicationContext:559 - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'flowableGlobalListenerConfig' defined in file [D:\work\javacode\yaxt-micro\jeecg-cloud-module\nbcio-boot-module-flowable\target\classes\com\nbcio\modules\flowable\config\FlowableGlobalListenerConfig.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'taskCreateListener' defined in file [D:\work\javacode\yaxt-micro\jeecg-cloud-module\nbcio-boot-module-flowable\target\classes\com\nbcio\modules\flowable\listener\TaskCreateListener.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'taskServiceBean' defined in class path resource [org/flowable/spring/boot/ProcessEngineServicesAutoConfiguration.class]: Unsatisfied dependency expressed through method 'taskServiceBean' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'processEngine': FactoryBean threw exception on object creation; nested exception is java.lang.NullPointerException 2025-09-03 15:09:15.997 [main] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext:559 - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jeecgTestFeignController': Unsatisfied dependency expressed through field 'jeecgTestClient'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.jeecg.modules.cloud.feign.feign.JeecgTestClient': FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'flowableGlobalListenerConfig' defined in file [D:\work\javacode\yaxt-micro\jeecg-cloud-module\nbcio-boot-module-flowable\target\classes\com\nbcio\modules\flowable\config\FlowableGlobalListenerConfig.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'taskCreateListener' defined in file [D:\work\javacode\yaxt-micro\jeecg-cloud-module\nbcio-boot-module-flowable\target\classes\com\nbcio\modules\flowable\listener\TaskCreateListener.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'taskServiceBean' defined in class path resource [org/flowable/spring/boot/ProcessEngineServicesAutoConfiguration.class]: Unsatisfied dependency expressed through method 'taskServiceBean' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'processEngine': FactoryBean threw exception on object creation; nested exception is java.lang.NullPointerException 2025-09-03 15:09:15.998 [main] INFO o.s.a.r.listener.SimpleMessageListenerContainer:1260 - Shutdown ignored - container is not active already 2025-09-03 15:09:16.004 [main] INFO o.s.orm.jpa.LocalContainerEntityManagerFactoryBean:598 - Closing JPA EntityManagerFactory for persistence unit 'default' 2025-09-03 15:09:16.009 [main] INFO c.b.dynamic.datasource.DynamicRoutingDataSource:217 - dynamic-datasource start closing .... 2025-09-03 15:09:16.011 [main] INFO com.alibaba.druid.pool.DruidDataSource:2029 - {dataSource-1} closing ... 2025-09-03 15:09:16.013 [main] INFO com.alibaba.druid.pool.DruidDataSource:2101 - {dataSource-1} closed 为什么还是报错
09-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值