Files
MTKJPAY/logs/mt-pay.2025-12-26.log
qiube 2d9a9c3668 feat(config): 更新开发和生产环境配置
- 修改开发环境前端URL从localhost改为公网地址
- 更新PayPal Webhook URL使用公网地址配置
- 在生产环境配置中添加服务器端口和应用配置
- 添加PayPal支付配置的详细注释说明
- 简化ERP用户管理API文档格式,移除冗余说明
- 移除PayPal订单生命周期和Webhook指南文档
- 优化PayPal Webhook配置文档内容

fix(order): 修复订单创建和库存管理并发问题

- 实现SELECT FOR UPDATE锁定SKU记录防止超卖
- 添加库存扣减原子操作确保并发安全
- 简化日志输出,移除冗余调试信息
- 添加订单取消功能并恢复库存
- 优化订单查询和状态更新逻辑

feat(mapper): 添加库存扣减和恢复功能

- 实现deductStock方法用于扣减库存
- 添加restoreStock方法用于恢复库存
- 实现selectByIdForUpdate方法用于悲观锁
- 为Mapper接口添加必要的注解支持
2025-12-26 10:54:01 +08:00

685 lines
76 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
2025-12-26 10:31:20.773 [background-preinit] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 8.0.1.Final
2025-12-26 10:31:20.830 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 23252 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY)
2025-12-26 10:31:20.831 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - The following 1 profile is active: "dev"
2025-12-26 10:31:22.207 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8082"]
2025-12-26 10:31:22.210 [restartedMain] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
2025-12-26 10:31:22.210 [restartedMain] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16]
2025-12-26 10:31:22.266 [restartedMain] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
2025-12-26 10:31:22.333 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - ═══════════════════════════════════════════════════════════
2025-12-26 10:31:22.333 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - PayPal配置加载验证:
2025-12-26 10:31:22.333 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Client ID: ✅ 已配置 (AdGYUZpvLuHR30dybOAp...)
2025-12-26 10:31:22.335 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Client Secret: ✅ 已配置 (ENblspyRmwsOU_PWFurl...)
2025-12-26 10:31:22.335 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Mode: sandbox
2025-12-26 10:31:22.335 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Enabled: true
2025-12-26 10:31:22.335 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Base URL: https://api-m.sandbox.paypal.com
2025-12-26 10:31:22.335 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Webhook URL: ✅ https://2646b437.r33.cpolar.top/api/paypal/webhook
2025-12-26 10:31:22.335 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - ═══════════════════════════════════════════════════════════
2025-12-26 10:31:22.351 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - 初始化MyBatis-Plus分页插件数据库类型: MYSQL
2025-12-26 10:31:22.354 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - MyBatis-Plus分页插件配置完成
2025-12-26 10:31:22.358 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 初始化Druid主数据源
2025-12-26 10:31:22.358 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 配置属性 - URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai, Username: mtkj2025
2025-12-26 10:31:22.383 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - Druid主数据源配置完成URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
2025-12-26 10:31:23.201 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - 初始化RestClient配置JSON消息转换器
2025-12-26 10:31:23.433 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - RestClient配置完成
2025-12-26 10:31:23.440 [restartedMain] INFO com.mtkj.mtpay.config.AsyncConfig - PayPal Webhook异步处理线程池初始化完成
2025-12-26 10:31:23.509 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 配置跨域访问,路径: /api/**, 允许来源: *
2025-12-26 10:31:23.512 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 跨域配置完成
2025-12-26 10:31:23.848 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8082"]
2025-12-26 10:31:23.868 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Started MtkjpayApplication in 3.79 seconds (process running for 5.566)
2025-12-26 10:31:23.870 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
╔══════════════════════════════════════════════════════════╗
║ ║
║ ✅ MTKJ PAY 支付系统启动成功! ✅ ║
║ ║
╠══════════════════════════════════════════════════════════╣
║ 应用信息 ║
╠══════════════════════════════════════════════════════════╣
║ 应用名称: {:<45} ║
║ 运行环境: {:<45} ║
║ 服务端口: {:<45} ║
╠══════════════════════════════════════════════════════════╣
║ 访问地址 ║
╠══════════════════════════════════════════════════════════╣
║ 后端服务: {:<45} ║
║ API接口: {:<45} ║
║ Druid监控: {:<45} ║
╠══════════════════════════════════════════════════════════╣
║ 状态: 🟢 服务运行中,可以接收请求 ║
╚══════════════════════════════════════════════════════════╝
2025-12-26 10:31:23.870 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
📌 提示:
- 前端代理地址: http://localhost:3000
- 后端API地址: http://localhost:8082//api
- 图片上传接口: http://localhost:8082//api/product/upload/image
- 商品管理接口: http://localhost:8082//api/product
2025-12-26 10:31:23.874 [main] ERROR com.mtkj.mtkjpay.MtkjpayApplication -
╔══════════════════════════════════════════════════════════╗
║ ║
║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║
║ ║
╚══════════════════════════════════════════════════════════╝
org.springframework.boot.devtools.restart.SilentExitExceptionHandler$SilentExitException: null
at org.springframework.boot.devtools.restart.SilentExitExceptionHandler.exitCurrentThread(SilentExitExceptionHandler.java:92)
at org.springframework.boot.devtools.restart.Restarter.immediateRestart(Restarter.java:179)
at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:163)
at org.springframework.boot.devtools.restart.Restarter.initialize(Restarter.java:532)
at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationStartingEvent(RestartApplicationListener.java:98)
at org.springframework.boot.devtools.restart.RestartApplicationListener.onApplicationEvent(RestartApplicationListener.java:51)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:178)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:171)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:149)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:137)
at org.springframework.boot.context.event.EventPublishingRunListener.multicastInitialEvent(EventPublishingRunListener.java:136)
at org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:75)
at org.springframework.boot.SpringApplicationRunListeners.lambda$starting$0(SpringApplicationRunListeners.java:54)
at java.base/java.lang.Iterable.forEach(Iterable.java:75)
at org.springframework.boot.SpringApplicationRunListeners.doWithListeners(SpringApplicationRunListeners.java:118)
at org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:54)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:42)
2025-12-26 10:48:57.710 [Thread-8] INFO org.apache.coyote.http11.Http11NioProtocol - Stopping ProtocolHandler ["http-nio-8082"]
2025-12-26 10:48:57.839 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
╔══════════════════════════════════════════════════════════╗
║ ║
║ MTKJ PAY 支付系统正在启动... ║
║ ║
╚══════════════════════════════════════════════════════════╝
2025-12-26 10:48:57.905 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 23252 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY)
2025-12-26 10:48:57.905 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - The following 1 profile is active: "dev"
2025-12-26 10:48:58.125 [restartedMain] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalArgumentException: Could not find class [com.mtkj.mtpay.config.PingPongProperties]
2025-12-26 10:48:58.194 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.IllegalArgumentException: Could not find class [com.mtkj.mtpay.config.PingPongProperties]
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:355)
at org.springframework.core.annotation.TypeMappedAnnotation.adapt(TypeMappedAnnotation.java:465)
at org.springframework.core.annotation.TypeMappedAnnotation.getValue(TypeMappedAnnotation.java:390)
at org.springframework.core.annotation.TypeMappedAnnotation.getAttributeValue(TypeMappedAnnotation.java:371)
at org.springframework.core.annotation.AbstractMergedAnnotation.getRequiredAttributeValue(AbstractMergedAnnotation.java:215)
at org.springframework.core.annotation.AbstractMergedAnnotation.getClassArray(AbstractMergedAnnotation.java:153)
at org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.lambda$getTypes$0(EnableConfigurationPropertiesRegistrar.java:55)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273)
at org.springframework.core.annotation.MergedAnnotationsCollection$AnnotationsSpliterator.tryAdvance(MergedAnnotationsCollection.java:254)
at java.base/java.util.Spliterator.forEachRemaining(Spliterator.java:332)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.getTypes(EnableConfigurationPropertiesRegistrar.java:57)
at org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.registerBeanDefinitions(EnableConfigurationPropertiesRegistrar.java:49)
at org.springframework.context.annotation.ImportBeanDefinitionRegistrar.registerBeanDefinitions(ImportBeanDefinitionRegistrar.java:86)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromRegistrars$1(ConfigurationClassBeanDefinitionReader.java:376)
at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:375)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:148)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:120)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:428)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:289)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:323)
at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:42)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50)
Caused by: java.lang.ClassNotFoundException: com.mtkj.mtpay.config.PingPongProperties
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:467)
at org.springframework.boot.devtools.restart.classloader.RestartClassLoader.loadClass(RestartClassLoader.java:121)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:467)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:304)
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:345)
... 38 common frames omitted
2025-12-26 10:48:58.197 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication -
╔══════════════════════════════════════════════════════════╗
║ ║
║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║
║ ║
╚══════════════════════════════════════════════════════════╝
java.lang.IllegalArgumentException: Could not find class [com.mtkj.mtpay.config.PingPongProperties]
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:355)
at org.springframework.core.annotation.TypeMappedAnnotation.adapt(TypeMappedAnnotation.java:465)
at org.springframework.core.annotation.TypeMappedAnnotation.getValue(TypeMappedAnnotation.java:390)
at org.springframework.core.annotation.TypeMappedAnnotation.getAttributeValue(TypeMappedAnnotation.java:371)
at org.springframework.core.annotation.AbstractMergedAnnotation.getRequiredAttributeValue(AbstractMergedAnnotation.java:215)
at org.springframework.core.annotation.AbstractMergedAnnotation.getClassArray(AbstractMergedAnnotation.java:153)
at org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.lambda$getTypes$0(EnableConfigurationPropertiesRegistrar.java:55)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273)
at org.springframework.core.annotation.MergedAnnotationsCollection$AnnotationsSpliterator.tryAdvance(MergedAnnotationsCollection.java:254)
at java.base/java.util.Spliterator.forEachRemaining(Spliterator.java:332)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.getTypes(EnableConfigurationPropertiesRegistrar.java:57)
at org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.registerBeanDefinitions(EnableConfigurationPropertiesRegistrar.java:49)
at org.springframework.context.annotation.ImportBeanDefinitionRegistrar.registerBeanDefinitions(ImportBeanDefinitionRegistrar.java:86)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromRegistrars$1(ConfigurationClassBeanDefinitionReader.java:376)
at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:375)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:148)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:120)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:428)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:289)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:323)
at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:42)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50)
Caused by: java.lang.ClassNotFoundException: com.mtkj.mtpay.config.PingPongProperties
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:467)
at org.springframework.boot.devtools.restart.classloader.RestartClassLoader.loadClass(RestartClassLoader.java:121)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:467)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:304)
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:345)
... 38 common frames omitted
2025-12-26 10:49:02.948 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
╔══════════════════════════════════════════════════════════╗
║ ║
║ MTKJ PAY 支付系统正在启动... ║
║ ║
╚══════════════════════════════════════════════════════════╝
2025-12-26 10:49:02.997 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 23252 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY)
2025-12-26 10:49:02.997 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - The following 1 profile is active: "dev"
2025-12-26 10:49:03.398 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8082"]
2025-12-26 10:49:03.398 [restartedMain] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
2025-12-26 10:49:03.400 [restartedMain] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16]
2025-12-26 10:49:03.407 [restartedMain] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
2025-12-26 10:49:03.427 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - ═══════════════════════════════════════════════════════════
2025-12-26 10:49:03.427 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - PayPal配置加载验证:
2025-12-26 10:49:03.427 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Client ID: ✅ 已配置 (AdGYUZpvLuHR30dybOAp...)
2025-12-26 10:49:03.427 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Client Secret: ✅ 已配置 (ENblspyRmwsOU_PWFurl...)
2025-12-26 10:49:03.427 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Mode: sandbox
2025-12-26 10:49:03.427 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Enabled: true
2025-12-26 10:49:03.427 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Base URL: https://api-m.sandbox.paypal.com
2025-12-26 10:49:03.427 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Webhook URL: ✅ https://2646b437.r33.cpolar.top/api/paypal/webhook
2025-12-26 10:49:03.427 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - ═══════════════════════════════════════════════════════════
2025-12-26 10:49:03.439 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - 初始化MyBatis-Plus分页插件数据库类型: MYSQL
2025-12-26 10:49:03.439 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - MyBatis-Plus分页插件配置完成
2025-12-26 10:49:03.442 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 初始化Druid主数据源
2025-12-26 10:49:03.442 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 配置属性 - URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai, Username: mtkj2025
2025-12-26 10:49:03.442 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - Druid主数据源配置完成URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
2025-12-26 10:49:03.889 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - 初始化RestClient配置JSON消息转换器
2025-12-26 10:49:03.889 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - RestClient配置完成
2025-12-26 10:49:03.896 [restartedMain] INFO com.mtkj.mtpay.config.AsyncConfig - PayPal Webhook异步处理线程池初始化完成
2025-12-26 10:49:03.923 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 配置跨域访问,路径: /api/**, 允许来源: *
2025-12-26 10:49:03.930 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 跨域配置完成
2025-12-26 10:49:04.028 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8082"]
2025-12-26 10:49:04.034 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Started MtkjpayApplication in 1.081 seconds (process running for 1065.736)
2025-12-26 10:49:04.034 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
╔══════════════════════════════════════════════════════════╗
║ ║
║ ✅ MTKJ PAY 支付系统启动成功! ✅ ║
║ ║
╠══════════════════════════════════════════════════════════╣
║ 应用信息 ║
╠══════════════════════════════════════════════════════════╣
║ 应用名称: {:<45} ║
║ 运行环境: {:<45} ║
║ 服务端口: {:<45} ║
╠══════════════════════════════════════════════════════════╣
║ 访问地址 ║
╠══════════════════════════════════════════════════════════╣
║ 后端服务: {:<45} ║
║ API接口: {:<45} ║
║ Druid监控: {:<45} ║
╠══════════════════════════════════════════════════════════╣
║ 状态: 🟢 服务运行中,可以接收请求 ║
╚══════════════════════════════════════════════════════════╝
2025-12-26 10:49:04.034 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
📌 提示:
- 前端代理地址: http://localhost:3000
- 后端API地址: http://localhost:8082//api
- 图片上传接口: http://localhost:8082//api/product/upload/image
- 商品管理接口: http://localhost:8082//api/product
2025-12-26 10:49:05.465 [Thread-10] INFO org.apache.coyote.http11.Http11NioProtocol - Stopping ProtocolHandler ["http-nio-8082"]
2025-12-26 10:49:05.544 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
╔══════════════════════════════════════════════════════════╗
║ ║
║ MTKJ PAY 支付系统正在启动... ║
║ ║
╚══════════════════════════════════════════════════════════╝
2025-12-26 10:49:05.576 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 23252 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY)
2025-12-26 10:49:05.577 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - The following 1 profile is active: "dev"
2025-12-26 10:49:05.895 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8082"]
2025-12-26 10:49:05.895 [restartedMain] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
2025-12-26 10:49:05.895 [restartedMain] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16]
2025-12-26 10:49:05.916 [restartedMain] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
2025-12-26 10:49:05.929 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - ═══════════════════════════════════════════════════════════
2025-12-26 10:49:05.929 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - PayPal配置加载验证:
2025-12-26 10:49:05.930 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Client ID: ✅ 已配置 (AdGYUZpvLuHR30dybOAp...)
2025-12-26 10:49:05.930 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Client Secret: ✅ 已配置 (ENblspyRmwsOU_PWFurl...)
2025-12-26 10:49:05.930 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Mode: sandbox
2025-12-26 10:49:05.930 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Enabled: true
2025-12-26 10:49:05.930 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Base URL: https://api-m.sandbox.paypal.com
2025-12-26 10:49:05.930 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Webhook URL: ✅ https://2646b437.r33.cpolar.top/api/paypal/webhook
2025-12-26 10:49:05.930 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - ═══════════════════════════════════════════════════════════
2025-12-26 10:49:05.937 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - 初始化MyBatis-Plus分页插件数据库类型: MYSQL
2025-12-26 10:49:05.937 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - MyBatis-Plus分页插件配置完成
2025-12-26 10:49:05.940 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 初始化Druid主数据源
2025-12-26 10:49:05.940 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 配置属性 - URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai, Username: mtkj2025
2025-12-26 10:49:05.940 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - Druid主数据源配置完成URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
2025-12-26 10:49:06.367 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - 初始化RestClient配置JSON消息转换器
2025-12-26 10:49:06.368 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - RestClient配置完成
2025-12-26 10:49:06.374 [restartedMain] INFO com.mtkj.mtpay.config.AsyncConfig - PayPal Webhook异步处理线程池初始化完成
2025-12-26 10:49:06.402 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 配置跨域访问,路径: /api/**, 允许来源: *
2025-12-26 10:49:06.402 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 跨域配置完成
2025-12-26 10:49:06.492 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8082"]
2025-12-26 10:49:06.500 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Started MtkjpayApplication in 0.951 seconds (process running for 1068.198)
2025-12-26 10:49:06.500 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
╔══════════════════════════════════════════════════════════╗
║ ║
║ ✅ MTKJ PAY 支付系统启动成功! ✅ ║
║ ║
╠══════════════════════════════════════════════════════════╣
║ 应用信息 ║
╠══════════════════════════════════════════════════════════╣
║ 应用名称: {:<45} ║
║ 运行环境: {:<45} ║
║ 服务端口: {:<45} ║
╠══════════════════════════════════════════════════════════╣
║ 访问地址 ║
╠══════════════════════════════════════════════════════════╣
║ 后端服务: {:<45} ║
║ API接口: {:<45} ║
║ Druid监控: {:<45} ║
╠══════════════════════════════════════════════════════════╣
║ 状态: 🟢 服务运行中,可以接收请求 ║
╚══════════════════════════════════════════════════════════╝
2025-12-26 10:49:06.500 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
📌 提示:
- 前端代理地址: http://localhost:3000
- 后端API地址: http://localhost:8082//api
- 图片上传接口: http://localhost:8082//api/product/upload/image
- 商品管理接口: http://localhost:8082//api/product
2025-12-26 10:53:05.742 [Thread-22] INFO org.apache.coyote.http11.Http11NioProtocol - Stopping ProtocolHandler ["http-nio-8082"]
2025-12-26 10:53:05.833 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
╔══════════════════════════════════════════════════════════╗
║ ║
║ MTKJ PAY 支付系统正在启动... ║
║ ║
╚══════════════════════════════════════════════════════════╝
2025-12-26 10:53:05.894 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 23252 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY)
2025-12-26 10:53:05.894 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - The following 1 profile is active: "dev"
2025-12-26 10:53:06.435 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8082"]
2025-12-26 10:53:06.435 [restartedMain] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
2025-12-26 10:53:06.435 [restartedMain] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16]
2025-12-26 10:53:06.464 [restartedMain] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
2025-12-26 10:53:06.490 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - ═══════════════════════════════════════════════════════════
2025-12-26 10:53:06.491 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - PayPal配置加载验证:
2025-12-26 10:53:06.491 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Client ID: ✅ 已配置 (AdGYUZpvLuHR30dybOAp...)
2025-12-26 10:53:06.491 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Client Secret: ✅ 已配置 (ENblspyRmwsOU_PWFurl...)
2025-12-26 10:53:06.492 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Mode: sandbox
2025-12-26 10:53:06.492 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Enabled: true
2025-12-26 10:53:06.492 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Base URL: https://api-m.sandbox.paypal.com
2025-12-26 10:53:06.492 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Webhook URL: ✅ https://2646b437.r33.cpolar.top/api/paypal/webhook
2025-12-26 10:53:06.492 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - ═══════════════════════════════════════════════════════════
2025-12-26 10:53:06.505 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - 初始化MyBatis-Plus分页插件数据库类型: MYSQL
2025-12-26 10:53:06.506 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - MyBatis-Plus分页插件配置完成
2025-12-26 10:53:06.514 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 初始化Druid主数据源
2025-12-26 10:53:06.515 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 配置属性 - URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai, Username: mtkj2025
2025-12-26 10:53:06.516 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - Druid主数据源配置完成URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
2025-12-26 10:53:08.301 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - 初始化RestClient配置JSON消息转换器
2025-12-26 10:53:08.316 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - RestClient配置完成
2025-12-26 10:53:08.327 [restartedMain] INFO com.mtkj.mtpay.config.AsyncConfig - PayPal Webhook异步处理线程池初始化完成
2025-12-26 10:53:08.395 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 配置跨域访问,路径: /api/**, 允许来源: *
2025-12-26 10:53:08.396 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 跨域配置完成
2025-12-26 10:53:08.873 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8082"]
2025-12-26 10:53:08.925 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Started MtkjpayApplication in 3.083 seconds (process running for 1310.623)
2025-12-26 10:53:08.934 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
╔══════════════════════════════════════════════════════════╗
║ ║
║ ✅ MTKJ PAY 支付系统启动成功! ✅ ║
║ ║
╠══════════════════════════════════════════════════════════╣
║ 应用信息 ║
╠══════════════════════════════════════════════════════════╣
║ 应用名称: {:<45} ║
║ 运行环境: {:<45} ║
║ 服务端口: {:<45} ║
╠══════════════════════════════════════════════════════════╣
║ 访问地址 ║
╠══════════════════════════════════════════════════════════╣
║ 后端服务: {:<45} ║
║ API接口: {:<45} ║
║ Druid监控: {:<45} ║
╠══════════════════════════════════════════════════════════╣
║ 状态: 🟢 服务运行中,可以接收请求 ║
╚══════════════════════════════════════════════════════════╝
2025-12-26 10:53:08.934 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
📌 提示:
- 前端代理地址: http://localhost:3000
- 后端API地址: http://localhost:8082//api
- 图片上传接口: http://localhost:8082//api/product/upload/image
- 商品管理接口: http://localhost:8082//api/product
2025-12-26 10:53:10.305 [Thread-29] INFO org.apache.coyote.http11.Http11NioProtocol - Stopping ProtocolHandler ["http-nio-8082"]
2025-12-26 10:53:10.624 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
╔══════════════════════════════════════════════════════════╗
║ ║
║ MTKJ PAY 支付系统正在启动... ║
║ ║
╚══════════════════════════════════════════════════════════╝
2025-12-26 10:53:10.705 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 23252 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY)
2025-12-26 10:53:10.705 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - The following 1 profile is active: "dev"
2025-12-26 10:53:11.095 [restartedMain] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: java.lang.IllegalArgumentException: Could not find class [com.mtkj.mtpay.config.PingPongProperties]
2025-12-26 10:53:11.107 [restartedMain] ERROR org.springframework.boot.SpringApplication - Application run failed
java.lang.IllegalArgumentException: Could not find class [com.mtkj.mtpay.config.PingPongProperties]
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:355)
at org.springframework.core.annotation.TypeMappedAnnotation.adapt(TypeMappedAnnotation.java:465)
at org.springframework.core.annotation.TypeMappedAnnotation.getValue(TypeMappedAnnotation.java:390)
at org.springframework.core.annotation.TypeMappedAnnotation.getAttributeValue(TypeMappedAnnotation.java:371)
at org.springframework.core.annotation.AbstractMergedAnnotation.getRequiredAttributeValue(AbstractMergedAnnotation.java:215)
at org.springframework.core.annotation.AbstractMergedAnnotation.getClassArray(AbstractMergedAnnotation.java:153)
at org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.lambda$getTypes$0(EnableConfigurationPropertiesRegistrar.java:55)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273)
at org.springframework.core.annotation.MergedAnnotationsCollection$AnnotationsSpliterator.tryAdvance(MergedAnnotationsCollection.java:254)
at java.base/java.util.Spliterator.forEachRemaining(Spliterator.java:332)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.getTypes(EnableConfigurationPropertiesRegistrar.java:57)
at org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.registerBeanDefinitions(EnableConfigurationPropertiesRegistrar.java:49)
at org.springframework.context.annotation.ImportBeanDefinitionRegistrar.registerBeanDefinitions(ImportBeanDefinitionRegistrar.java:86)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromRegistrars$1(ConfigurationClassBeanDefinitionReader.java:376)
at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:375)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:148)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:120)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:428)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:289)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:323)
at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:42)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50)
Caused by: java.lang.ClassNotFoundException: com.mtkj.mtpay.config.PingPongProperties
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:467)
at org.springframework.boot.devtools.restart.classloader.RestartClassLoader.loadClass(RestartClassLoader.java:121)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:467)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:304)
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:345)
... 38 common frames omitted
2025-12-26 10:53:11.107 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication -
╔══════════════════════════════════════════════════════════╗
║ ║
║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║
║ ║
╚══════════════════════════════════════════════════════════╝
java.lang.IllegalArgumentException: Could not find class [com.mtkj.mtpay.config.PingPongProperties]
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:355)
at org.springframework.core.annotation.TypeMappedAnnotation.adapt(TypeMappedAnnotation.java:465)
at org.springframework.core.annotation.TypeMappedAnnotation.getValue(TypeMappedAnnotation.java:390)
at org.springframework.core.annotation.TypeMappedAnnotation.getAttributeValue(TypeMappedAnnotation.java:371)
at org.springframework.core.annotation.AbstractMergedAnnotation.getRequiredAttributeValue(AbstractMergedAnnotation.java:215)
at org.springframework.core.annotation.AbstractMergedAnnotation.getClassArray(AbstractMergedAnnotation.java:153)
at org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.lambda$getTypes$0(EnableConfigurationPropertiesRegistrar.java:55)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:273)
at org.springframework.core.annotation.MergedAnnotationsCollection$AnnotationsSpliterator.tryAdvance(MergedAnnotationsCollection.java:254)
at java.base/java.util.Spliterator.forEachRemaining(Spliterator.java:332)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.getTypes(EnableConfigurationPropertiesRegistrar.java:57)
at org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.registerBeanDefinitions(EnableConfigurationPropertiesRegistrar.java:49)
at org.springframework.context.annotation.ImportBeanDefinitionRegistrar.registerBeanDefinitions(ImportBeanDefinitionRegistrar.java:86)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromRegistrars$1(ConfigurationClassBeanDefinitionReader.java:376)
at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:375)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:148)
at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:120)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:428)
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:289)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:349)
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:118)
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:775)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:597)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:323)
at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:42)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50)
Caused by: java.lang.ClassNotFoundException: com.mtkj.mtpay.config.PingPongProperties
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:467)
at org.springframework.boot.devtools.restart.classloader.RestartClassLoader.loadClass(RestartClassLoader.java:121)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:467)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:304)
at org.springframework.util.ClassUtils.resolveClassName(ClassUtils.java:345)
... 38 common frames omitted
2025-12-26 10:53:19.292 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
╔══════════════════════════════════════════════════════════╗
║ ║
║ MTKJ PAY 支付系统正在启动... ║
║ ║
╚══════════════════════════════════════════════════════════╝
2025-12-26 10:53:19.365 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 23252 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY)
2025-12-26 10:53:19.365 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - The following 1 profile is active: "dev"
2025-12-26 10:53:20.117 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8082"]
2025-12-26 10:53:20.120 [restartedMain] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
2025-12-26 10:53:20.122 [restartedMain] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16]
2025-12-26 10:53:20.188 [restartedMain] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
2025-12-26 10:53:20.209 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - ═══════════════════════════════════════════════════════════
2025-12-26 10:53:20.209 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - PayPal配置加载验证:
2025-12-26 10:53:20.210 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Client ID: ✅ 已配置 (AdGYUZpvLuHR30dybOAp...)
2025-12-26 10:53:20.210 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Client Secret: ✅ 已配置 (ENblspyRmwsOU_PWFurl...)
2025-12-26 10:53:20.210 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Mode: sandbox
2025-12-26 10:53:20.210 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Enabled: true
2025-12-26 10:53:20.210 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Base URL: https://api-m.sandbox.paypal.com
2025-12-26 10:53:20.210 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Webhook URL: ✅ https://2646b437.r33.cpolar.top/api/paypal/webhook
2025-12-26 10:53:20.210 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - ═══════════════════════════════════════════════════════════
2025-12-26 10:53:20.225 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - 初始化MyBatis-Plus分页插件数据库类型: MYSQL
2025-12-26 10:53:20.225 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - MyBatis-Plus分页插件配置完成
2025-12-26 10:53:20.230 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 初始化Druid主数据源
2025-12-26 10:53:20.230 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 配置属性 - URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai, Username: mtkj2025
2025-12-26 10:53:20.230 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - Druid主数据源配置完成URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
2025-12-26 10:53:20.842 [restartedMain] WARN o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'productController': Unsatisfied dependency expressed through field 'ossService': Error creating bean with name 'ossServiceImpl': Unsatisfied dependency expressed through field 'ossProperties': No qualifying bean of type 'com.mtkj.mtpay.config.AliyunOSSProperties' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
2025-12-26 10:53:20.843 [restartedMain] INFO org.apache.catalina.core.StandardService - Stopping service [Tomcat]
2025-12-26 10:53:20.855 [restartedMain] ERROR o.s.b.diagnostics.LoggingFailureAnalysisReporter -
***************************
APPLICATION FAILED TO START
***************************
Description:
Field ossProperties in com.mtkj.mtpay.service.impl.OssServiceImpl required a bean of type 'com.mtkj.mtpay.config.AliyunOSSProperties' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'com.mtkj.mtpay.config.AliyunOSSProperties' in your configuration.
2025-12-26 10:53:20.856 [restartedMain] ERROR com.mtkj.mtkjpay.MtkjpayApplication -
╔══════════════════════════════════════════════════════════╗
║ ║
║ ❌ MTKJ PAY 支付系统启动失败! ❌ ║
║ ║
╚══════════════════════════════════════════════════════════╝
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'productController': Unsatisfied dependency expressed through field 'ossService': Error creating bean with name 'ossServiceImpl': Unsatisfied dependency expressed through field 'ossProperties': No qualifying bean of type 'com.mtkj.mtpay.config.AliyunOSSProperties' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:772)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:752)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:493)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:946)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:616)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:455)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:323)
at com.mtkj.mtkjpay.MtkjpayApplication.main(MtkjpayApplication.java:42)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50)
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'ossServiceImpl': Unsatisfied dependency expressed through field 'ossProperties': No qualifying bean of type 'com.mtkj.mtpay.config.AliyunOSSProperties' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:772)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:752)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:493)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1420)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:523)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1441)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:769)
... 23 common frames omitted
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.mtkj.mtpay.config.AliyunOSSProperties' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1878)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1404)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1348)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:769)
... 37 common frames omitted
2025-12-26 10:53:22.355 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
╔══════════════════════════════════════════════════════════╗
║ ║
║ MTKJ PAY 支付系统正在启动... ║
║ ║
╚══════════════════════════════════════════════════════════╝
2025-12-26 10:53:22.390 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Starting MtkjpayApplication using Java 17.0.12 with PID 23252 (E:\MTKJPAY\mt-startup\target\classes started by 18969 in E:\MTKJPAY)
2025-12-26 10:53:22.390 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - The following 1 profile is active: "dev"
2025-12-26 10:53:22.733 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8082"]
2025-12-26 10:53:22.733 [restartedMain] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
2025-12-26 10:53:22.733 [restartedMain] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.16]
2025-12-26 10:53:22.748 [restartedMain] INFO o.a.c.c.ContainerBase.[Tomcat-1].[localhost].[/] - Initializing Spring embedded WebApplicationContext
2025-12-26 10:53:22.760 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - ═══════════════════════════════════════════════════════════
2025-12-26 10:53:22.760 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - PayPal配置加载验证:
2025-12-26 10:53:22.760 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Client ID: ✅ 已配置 (AdGYUZpvLuHR30dybOAp...)
2025-12-26 10:53:22.760 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Client Secret: ✅ 已配置 (ENblspyRmwsOU_PWFurl...)
2025-12-26 10:53:22.760 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Mode: sandbox
2025-12-26 10:53:22.760 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Enabled: true
2025-12-26 10:53:22.760 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Base URL: https://api-m.sandbox.paypal.com
2025-12-26 10:53:22.760 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - - Webhook URL: ✅ https://2646b437.r33.cpolar.top/api/paypal/webhook
2025-12-26 10:53:22.760 [restartedMain] INFO com.mtkj.mtpay.config.PayPalProperties - ═══════════════════════════════════════════════════════════
2025-12-26 10:53:22.767 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - 初始化MyBatis-Plus分页插件数据库类型: MYSQL
2025-12-26 10:53:22.767 [restartedMain] INFO com.mtkj.mtpay.config.MyBatisPlusConfig - MyBatis-Plus分页插件配置完成
2025-12-26 10:53:22.769 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 初始化Druid主数据源
2025-12-26 10:53:22.769 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - 配置属性 - URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai, Username: mtkj2025
2025-12-26 10:53:22.770 [restartedMain] INFO com.mtkj.mtpay.config.DruidDataSourceConfig - Druid主数据源配置完成URL: jdbc:mysql://rm-j6c3u06k2afwn8hxw6o.mysql.rds.aliyuncs.com:3306/mtpay?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
2025-12-26 10:53:23.166 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - 初始化RestClient配置JSON消息转换器
2025-12-26 10:53:23.169 [restartedMain] INFO com.mtkj.mtpay.config.RestClientConfig - RestClient配置完成
2025-12-26 10:53:23.174 [restartedMain] INFO com.mtkj.mtpay.config.AsyncConfig - PayPal Webhook异步处理线程池初始化完成
2025-12-26 10:53:23.205 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 配置跨域访问,路径: /api/**, 允许来源: *
2025-12-26 10:53:23.206 [restartedMain] INFO com.mtkj.mtpay.config.WebConfig - 跨域配置完成
2025-12-26 10:53:23.302 [restartedMain] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8082"]
2025-12-26 10:53:23.309 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication - Started MtkjpayApplication in 0.95 seconds (process running for 1325.008)
2025-12-26 10:53:23.310 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
╔══════════════════════════════════════════════════════════╗
║ ║
║ ✅ MTKJ PAY 支付系统启动成功! ✅ ║
║ ║
╠══════════════════════════════════════════════════════════╣
║ 应用信息 ║
╠══════════════════════════════════════════════════════════╣
║ 应用名称: {:<45} ║
║ 运行环境: {:<45} ║
║ 服务端口: {:<45} ║
╠══════════════════════════════════════════════════════════╣
║ 访问地址 ║
╠══════════════════════════════════════════════════════════╣
║ 后端服务: {:<45} ║
║ API接口: {:<45} ║
║ Druid监控: {:<45} ║
╠══════════════════════════════════════════════════════════╣
║ 状态: 🟢 服务运行中,可以接收请求 ║
╚══════════════════════════════════════════════════════════╝
2025-12-26 10:53:23.310 [restartedMain] INFO com.mtkj.mtkjpay.MtkjpayApplication -
📌 提示:
- 前端代理地址: http://localhost:3000
- 后端API地址: http://localhost:8082//api
- 图片上传接口: http://localhost:8082//api/product/upload/image
- 商品管理接口: http://localhost:8082//api/product