12.lazy-init:bean延迟初始化

本文详细介绍了Spring框架中bean的两种初始化方式:实时初始化和延迟初始化,包括它们的特点、优缺点以及如何通过lazy-init属性配置。同时,通过示例展示了如何在实际项目中应用这些概念。

bean初始化的2种方式

  1. 实时初始化
  2. 延迟初始化

bean实时初始化

在容器启动过程中被创建组装好的bean,称为实时初始化的bean,spring中默认定义的bean都是实时初始化的bean,这些bean默认都是单例的,在容器启动过程中会被创建好,然后放在spring容器中以供使用。

实时初始化bean的有一些优点

  1. 更早发下bean定义的错误:实时初始化的bean如果定义有问题,会在容器启动过程中会抛出异常,让开发者快速发现问题
  2. 查找bean更快:容器启动完毕之后,实时初始化的bean已经完全创建好了,此时被缓存在spring容器中,当我们需要使用的时候,容器直接返回就可以了,速度是非常快的

案例

ActualTimeBean类

  1. package com.javacode2018.lesson001.demo11;
  2. /**
  3. * 实时初始化的bean
  4. */
  5. public class ActualTimeBean {
  6. public ActualTimeBean() {
  7. System.out.println("我是实时初始化的bean!");
  8. }
  9. }

一会我们在spring中创建上面这个对象,构造函数中会输出一段话,这段话会在spring容器创建过程中输出。

actualTimeBean.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
  6. <bean id="actualTimeBean" class="com.javacode2018.lesson001.demo11.ActualTimeBean"/>
  7. </beans>
测试用例

  1. package com.javacode2018.lesson001.demo11;
  2. import org.junit.Test;
  3. import org.springframework.context.support.ClassPathXmlApplicationContext;
  4. /**
  5. * 公众号:路人甲Java,工作10年的前阿里P7分享Java、算法、数据库方面的技术干货!坚信用技术改变命运,让家人过上更体面的生活!
  6. * bean默认是实时初始化的,可以通过bean元素的lazy-init="true"将bean定义为延迟初始化
  7. */
  8. public class LazyBeanTest {
  9. @Test
  10. public void actualTimeBean() {
  11. System.out.println("spring容器启动中...");
  12. String beanXml = "classpath:/com/javacode2018/lesson001/demo11/actualTimeBean.xml";
  13. new ClassPathXmlApplicationContext(beanXml); //启动spring容器
  14. System.out.println("spring容器启动完毕...");
  15. }
  16. }

注意上面代码,容器启动前后有输出,运行actualTimeBean输出:


  1. spring容器启动中...
  2. 我是实时初始化的bean!
  3. spring容器启动完毕...

可以看出actualTimeBean这个bean是在容器启动过程中被创建好的。

延迟初始化的bean

从上面我们可以看出,实时初始化的bean都会在容器启动过程中创建好,如果程序中定义的bean非常多,并且有些bean创建的过程中比较耗时的时候,会导致系统消耗的资源比较多,并且会让整个启动时间比较长,这个我估计大家都是有感受的,使用spring开发的系统比较大的时候,整个系统启动耗时是比较长的,基本上多数时间都是在创建和组装bean。

spring对这些问题也提供了解决方案:bean延迟初始化。

所谓延迟初始化,就是和实时初始化刚好相反,延迟初始化的bean在容器启动过程中不会创建,而是需要使用的时候才会去创建,先说一下bean什么时候会被使用:

  1. 被其他bean作为依赖进行注入的时候,比如通过property元素的ref属性进行引用,通过构造器注入、通过set注入、通过自动注入,这些都会导致被依赖bean的创建
  2. 开发者自己写代码向容器中查找bean的时候,如调用容器的getBean方法获取bean。

上面这2中情况会导致延迟初始化的bean被创建。

延迟bean的配置

在bean定义的时候通过lazy-init属性来配置bean是否是延迟加载,true:延迟初始化,false:实时初始化


  1. <bean lazy-init="是否是延迟初始化" />

我们来2个案例看一下效果。

案例1

LazyInitBean类

  1. package com.javacode2018.lesson001.demo11;
  2. public class LazyInitBean {
  3. public LazyInitBean() {
  4. System.out.println("我是延迟初始化的bean!");
  5. }
  6. }
lazyInitBean.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
  6. <bean id="lazyInitBean" class="com.javacode2018.lesson001.demo11.LazyInitBean" lazy-init="true"/>
  7. </beans>

注意上面的lazy-init="true"表示定义的这个bean是延迟初始化的bean。

测试用例

LazyBeanTest中加个方法


  1. @Test
  2. public void lazyInitBean() {
  3. System.out.println("spring容器启动中...");
  4. String beanXml = "classpath:/com/javacode2018/lesson001/demo11/lazyInitBean.xml";
  5. ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(beanXml); //启动spring容器
  6. System.out.println("spring容器启动完毕...");
  7. System.out.println("从容器中开始查找LazyInitBean");
  8. LazyInitBean lazyInitBean = context.getBean(LazyInitBean.class);
  9. System.out.println("LazyInitBean:" + lazyInitBean);
  10. }

注意上面的输出,容器启动前后有输出,然后又从容器中查找LazyInitBean。

运行输出

执行lazyInitBean方法,输出:


  1. spring容器启动中...
  2. spring容器启动完毕...
  3. 从容器中开始查找LazyInitBean
  4. 我是延迟初始化的bean!
  5. LazyInitBean:com.javacode2018.lesson001.demo11.LazyInitBean@11dc3715

代码结合输出可以看出来,LazyInitBean在容器启动过程中并没有创建,当我们调用context.getBean方法的时候,LazyInitBean才被创建的。

案例2

上面这种方式是我们主动从容器中获取bean的时候,延迟初始化的bean才被容器创建的,下面我们再来看一下当延迟初始化的bean被其他实时初始化的bean依赖的时候,是什么时候创建的。

ActualTimeDependencyLazyBean类

  1. package com.javacode2018.lesson001.demo11;
  2. public class ActualTimeDependencyLazyBean {
  3. public ActualTimeDependencyLazyBean() {
  4. System.out.println("ActualTimeDependencyLazyBean实例化!");
  5. }
  6. private LazyInitBean lazyInitBean;
  7. public LazyInitBean getLazyInitBean() {
  8. return lazyInitBean;
  9. }
  10. public void setLazyInitBean(LazyInitBean lazyInitBean) {
  11. this.lazyInitBean = lazyInitBean;
  12. System.out.println("ActualTimeDependencyLazyBean.setLazyInitBean方法!");
  13. }
  14. }

ActualTimeDependencyLazyBean类中有个lazyInitBean属性,对应的有get和set方法,我们将通过set方法将lazyInitBean对象注入。

actualTimeDependencyLazyBean.xml

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans
  5. http://www.springframework.org/schema/beans/spring-beans-4.3.xsd">
  6. <bean id="lazyInitBean" class="com.javacode2018.lesson001.demo11.LazyInitBean" lazy-init="true"/>
  7. <bean id="actualTimeDependencyLazyBean" class="com.javacode2018.lesson001.demo11.ActualTimeDependencyLazyBean">
  8. <property name="lazyInitBean" ref="lazyInitBean"/>
  9. </bean>
  10. </beans>

注意上面定义了2个bean:

lazyInitBean:lazy-init为true,说明这个bean是延迟创建的

actualTimeDependencyLazyBean:通过property元素来注入lazyInitBean,actualTimeDependencyLazyBean中没有指定lazy-init,默认为false,表示是实时创建的bean,会在容器创建过程中被初始化

测试用例

LazyBeanTest中加个方法,如下:


  1. @Test
  2. public void actualTimeDependencyLazyBean() {
  3. System.out.println("spring容器启动中...");
  4. String beanXml = "classpath:/com/javacode2018/lesson001/demo11/actualTimeDependencyLazyBean.xml";
  5. ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(beanXml); //启动spring容器
  6. System.out.println("spring容器启动完毕...");
  7. }
运行输出

  1. spring容器启动中...
  2. ActualTimeDependencyLazyBean实例化!
  3. 我是延迟初始化的bean!
  4. ActualTimeDependencyLazyBean.setLazyInitBean方法!
  5. spring容器启动完毕...

从容器中可以看到,xml中定义的2个bean都在容器启动过程中被创建好了。

有些朋友比较迷茫,lazyInitBean的lazy-init为true,怎么也在容器启动过程中被创建呢?

由于actualTimeDependencyLazyBean为实时初始化的bean,而这个bean在创建过程中需要用到lazyInitBean,此时容器会去查找lazyInitBean这个bean,然后会进行初始化,所以这2个bean都在容器启动过程中被创建的。

总结

延迟初始化的bean无法在程序启动过程中迅速发现bean定义的问题,第一次获取的时候可能耗时会比较长。在实际工作中用的比较少,作为了解,以后碰到的时候会有个印象。

案例源码


  1. 链接:https://pan.baidu.com/s/1p6rcfKOeWQIVkuhVybzZmQ
  2. 提取码:zr99
E:\MyOffice\jdk\jdk-21.0.9\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:50976,suspend=y,server=n -javaagent:C:\Users\xuliang\AppData\Local\JetBrains\IntelliJIdea2025.1\captureAgent\debugger-agent.jar=file:///C:/Users/xuliang/AppData/Local/Temp/capture1082632646467049563.props --add-opens java.base/sun.reflect.annotation=ALL-UNNAMED -agentpath:C:\Users\xuliang\AppData\Local\Temp\idea_libasyncProfiler_dll_temp_folder\libasyncProfiler.dll=version,jfr,event=wall,interval=10ms,cstack=no,file=C:\Users\xuliang\IdeaSnapshots\Application_2025_11_18_152119.jfr,dbghelppath=C:\Users\xuliang\AppData\Local\Temp\idea_dbghelp_dll_temp_folder\dbghelp.dll,log=C:\Users\xuliang\AppData\Local\Temp\Application_2025_11_18_152119.jfr.log.txt,logLevel=DEBUG -XX:TieredStopAtLevel=1 -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true "-Dmanagement.endpoints.jmx.exposure.include=*" -Dkotlinx.coroutines.debug.enable.creation.stack.trace=false -Ddebugger.agent.enable.coroutines=true -Dkotlinx.coroutines.debug.enable.flows.stack.trace=true -Dkotlinx.coroutines.debug.enable.mutable.state.flows.stack.trace=true -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath "E:\ZhongYuanHaiYun\digital-large-screen-service-main\target\classes;D:\anzhuangderuanjian\repository\org\springframework\boot\spring-boot-starter-actuator\3.5.7\spring-boot-starter-actuator-3.5.7.jar;D:\anzhuangderuanjian\repository\org\springframework\boot\spring-boot-starter\3.5.7\spring-boot-starter-3.5.7.jar;D:\anzhuangderuanjian\repository\org\springframework\boot\spring-boot\3.5.7\spring-boot-3.5.7.jar;D:\anzhuangderuanjian\repository\org\springframework\spring-context\6.2.12\spring-context-6.2.12.jar;D:\anzhuangderuanjian\repository\org\springframework\boot\spring-boot-autoconfigure\3.5.7\spring-boot-autoconfigure-3.5.7.jar;D:\anzhuangderuanjian\repository\org\springframework\boot\spring-boot-starter-logging\3.5.7\spring-boot-starter-logging-3.5.7.jar;D:\anzhuangderuanjian\repository\ch\qos\logback\logback-classic\1.5.20\logback-classic-1.5.20.jar;D:\anzhuangderuanjian\repository\ch\qos\logback\logback-core\1.5.20\logback-core-1.5.20.jar;D:\anzhuangderuanjian\repository\org\apache\logging\log4j\log4j-to-slf4j\2.24.3\log4j-to-slf4j-2.24.3.jar;D:\anzhuangderuanjian\repository\org\apache\logging\log4j\log4j-api\2.24.3\log4j-api-2.24.3.jar;D:\anzhuangderuanjian\repository\org\slf4j\jul-to-slf4j\2.0.17\jul-to-slf4j-2.0.17.jar;D:\anzhuangderuanjian\repository\jakarta\annotation\jakarta.annotation-api\2.1.1\jakarta.annotation-api-2.1.1.jar;D:\anzhuangderuanjian\repository\org\springframework\spring-core\6.2.12\spring-core-6.2.12.jar;D:\anzhuangderuanjian\repository\org\springframework\spring-jcl\6.2.12\spring-jcl-6.2.12.jar;D:\anzhuangderuanjian\repository\org\yaml\snakeyaml\2.4\snakeyaml-2.4.jar;D:\anzhuangderuanjian\repository\org\springframework\boot\spring-boot-actuator-autoconfigure\3.5.7\spring-boot-actuator-autoconfigure-3.5.7.jar;D:\anzhuangderuanjian\repository\org\springframework\boot\spring-boot-actuator\3.5.7\spring-boot-actuator-3.5.7.jar;D:\anzhuangderuanjian\repository\com\fasterxml\jackson\core\jackson-databind\2.19.2\jackson-databind-2.19.2.jar;D:\anzhuangderuanjian\repository\com\fasterxml\jackson\core\jackson-annotations\2.19.2\jackson-annotations-2.19.2.jar;D:\anzhuangderuanjian\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.19.2\jackson-datatype-jsr310-2.19.2.jar;D:\anzhuangderuanjian\repository\io\micrometer\micrometer-observation\1.15.5\micrometer-observation-1.15.5.jar;D:\anzhuangderuanjian\repository\io\micrometer\micrometer-commons\1.15.5\micrometer-commons-1.15.5.jar;D:\anzhuangderuanjian\repository\io\micrometer\micrometer-jakarta9\1.15.5\micrometer-jakarta9-1.15.5.jar;D:\anzhuangderuanjian\repository\io\micrometer\micrometer-core\1.15.5\micrometer-core-1.15.5.jar;D:\anzhuangderuanjian\repository\org\hdrhistogram\HdrHistogram\2.2.2\HdrHistogram-2.2.2.jar;D:\anzhuangderuanjian\repository\org\latencyutils\LatencyUtils\2.0.3\LatencyUtils-2.0.3.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\webmvc-spring-boot-starter\2024.0.0-beta.84\webmvc-spring-boot-starter-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\autoconfigure-spring-boot-starter\2024.0.0-beta.84\autoconfigure-spring-boot-starter-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\common-core\2024.0.0-beta.84\common-core-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\org\jspecify\jspecify\1.0.0\jspecify-1.0.0.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\common-validation\2024.0.0-beta.84\common-validation-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\jakarta\validation\jakarta.validation-api\3.0.2\jakarta.validation-api-3.0.2.jar;D:\anzhuangderuanjian\repository\org\springframework\boot\spring-boot-starter-validation\3.5.7\spring-boot-starter-validation-3.5.7.jar;D:\anzhuangderuanjian\repository\org\hibernate\validator\hibernate-validator\8.0.3.Final\hibernate-validator-8.0.3.Final.jar;D:\anzhuangderuanjian\repository\org\jboss\logging\jboss-logging\3.6.1.Final\jboss-logging-3.6.1.Final.jar;D:\anzhuangderuanjian\repository\com\fasterxml\classmate\1.7.1\classmate-1.7.1.jar;D:\anzhuangderuanjian\repository\cn\hutool\hutool-http\5.8.40\hutool-http-5.8.40.jar;D:\anzhuangderuanjian\repository\cn\hutool\hutool-extra\5.8.40\hutool-extra-5.8.40.jar;D:\anzhuangderuanjian\repository\cn\hutool\hutool-setting\5.8.40\hutool-setting-5.8.40.jar;D:\anzhuangderuanjian\repository\cn\hutool\hutool-log\5.8.40\hutool-log-5.8.40.jar;D:\anzhuangderuanjian\repository\org\springframework\spring-web\6.2.12\spring-web-6.2.12.jar;D:\anzhuangderuanjian\repository\org\springframework\spring-beans\6.2.12\spring-beans-6.2.12.jar;D:\anzhuangderuanjian\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.19.2\jackson-datatype-jdk8-2.19.2.jar;D:\anzhuangderuanjian\repository\jakarta\servlet\jakarta.servlet-api\6.0.0\jakarta.servlet-api-6.0.0.jar;D:\anzhuangderuanjian\repository\org\liquibase\liquibase-core\4.31.1\liquibase-core-4.31.1.jar;D:\anzhuangderuanjian\repository\com\opencsv\opencsv\5.9\opencsv-5.9.jar;D:\anzhuangderuanjian\repository\javax\xml\bind\jaxb-api\2.3.1\jaxb-api-2.3.1.jar;D:\anzhuangderuanjian\repository\org\apache\commons\commons-collections4\4.5.0\commons-collections4-4.5.0.jar;D:\anzhuangderuanjian\repository\org\apache\commons\commons-text\1.13.0\commons-text-1.13.0.jar;D:\anzhuangderuanjian\repository\org\apache\commons\commons-lang3\3.17.0\commons-lang3-3.17.0.jar;D:\anzhuangderuanjian\repository\commons-io\commons-io\2.20.0\commons-io-2.20.0.jar;D:\anzhuangderuanjian\repository\com\google\auto\service\auto-service-annotations\1.1.1\auto-service-annotations-1.1.1.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\web-extension-spring-boot-starter\2024.0.0-beta.84\web-extension-spring-boot-starter-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\discovery-spring-boot-starter\2024.0.0-beta.84\discovery-spring-boot-starter-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\org\springframework\data\spring-data-commons\3.5.5\spring-data-commons-3.5.5.jar;D:\anzhuangderuanjian\repository\org\springdoc\springdoc-openapi-starter-webmvc-api\2.8.13\springdoc-openapi-starter-webmvc-api-2.8.13.jar;D:\anzhuangderuanjian\repository\org\springdoc\springdoc-openapi-starter-common\2.8.13\springdoc-openapi-starter-common-2.8.13.jar;D:\anzhuangderuanjian\repository\io\swagger\core\v3\swagger-core-jakarta\2.2.38\swagger-core-jakarta-2.2.38.jar;D:\anzhuangderuanjian\repository\io\swagger\core\v3\swagger-models-jakarta\2.2.38\swagger-models-jakarta-2.2.38.jar;D:\anzhuangderuanjian\repository\org\springframework\spring-webmvc\6.2.12\spring-webmvc-6.2.12.jar;D:\anzhuangderuanjian\repository\org\springframework\spring-aop\6.2.12\spring-aop-6.2.12.jar;D:\anzhuangderuanjian\repository\org\springframework\spring-expression\6.2.12\spring-expression-6.2.12.jar;D:\anzhuangderuanjian\repository\org\springframework\boot\spring-boot-starter-web\3.5.7\spring-boot-starter-web-3.5.7.jar;D:\anzhuangderuanjian\repository\org\springframework\boot\spring-boot-starter-tomcat\3.5.7\spring-boot-starter-tomcat-3.5.7.jar;D:\anzhuangderuanjian\repository\org\apache\tomcat\embed\tomcat-embed-core\10.1.48\tomcat-embed-core-10.1.48.jar;D:\anzhuangderuanjian\repository\org\apache\tomcat\embed\tomcat-embed-el\10.1.48\tomcat-embed-el-10.1.48.jar;D:\anzhuangderuanjian\repository\org\apache\tomcat\embed\tomcat-embed-websocket\10.1.48\tomcat-embed-websocket-10.1.48.jar;D:\anzhuangderuanjian\repository\org\jetbrains\kotlin\kotlin-stdlib\1.9.25\kotlin-stdlib-1.9.25.jar;D:\anzhuangderuanjian\repository\org\jetbrains\annotations\13.0\annotations-13.0.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\redis-spring-boot-starter\2024.0.0-beta.84\redis-spring-boot-starter-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\org\springframework\boot\spring-boot-starter-json\3.5.7\spring-boot-starter-json-3.5.7.jar;D:\anzhuangderuanjian\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.19.2\jackson-module-parameter-names-2.19.2.jar;D:\anzhuangderuanjian\repository\org\springframework\boot\spring-boot-starter-data-redis\3.5.7\spring-boot-starter-data-redis-3.5.7.jar;D:\anzhuangderuanjian\repository\io\lettuce\lettuce-core\6.6.0.RELEASE\lettuce-core-6.6.0.RELEASE.jar;D:\anzhuangderuanjian\repository\redis\clients\authentication\redis-authx-core\0.1.1-beta2\redis-authx-core-0.1.1-beta2.jar;D:\anzhuangderuanjian\repository\io\netty\netty-common\4.1.128.Final\netty-common-4.1.128.Final.jar;D:\anzhuangderuanjian\repository\io\netty\netty-handler\4.1.128.Final\netty-handler-4.1.128.Final.jar;D:\anzhuangderuanjian\repository\io\netty\netty-transport-native-unix-common\4.1.128.Final\netty-transport-native-unix-common-4.1.128.Final.jar;D:\anzhuangderuanjian\repository\io\netty\netty-transport\4.1.128.Final\netty-transport-4.1.128.Final.jar;D:\anzhuangderuanjian\repository\io\projectreactor\reactor-core\3.7.12\reactor-core-3.7.12.jar;D:\anzhuangderuanjian\repository\org\springframework\data\spring-data-redis\3.5.5\spring-data-redis-3.5.5.jar;D:\anzhuangderuanjian\repository\org\springframework\data\spring-data-keyvalue\3.5.5\spring-data-keyvalue-3.5.5.jar;D:\anzhuangderuanjian\repository\org\springframework\spring-tx\6.2.12\spring-tx-6.2.12.jar;D:\anzhuangderuanjian\repository\org\springframework\spring-oxm\6.2.12\spring-oxm-6.2.12.jar;D:\anzhuangderuanjian\repository\org\springframework\boot\spring-boot-starter-cache\3.5.7\spring-boot-starter-cache-3.5.7.jar;D:\anzhuangderuanjian\repository\org\springframework\spring-context-support\6.2.12\spring-context-support-6.2.12.jar;D:\anzhuangderuanjian\repository\org\redisson\redisson-spring-boot-starter\3.52.0\redisson-spring-boot-starter-3.52.0.jar;D:\anzhuangderuanjian\repository\org\redisson\redisson\3.52.0\redisson-3.52.0.jar;D:\anzhuangderuanjian\repository\io\netty\netty-codec\4.1.128.Final\netty-codec-4.1.128.Final.jar;D:\anzhuangderuanjian\repository\io\netty\netty-buffer\4.1.128.Final\netty-buffer-4.1.128.Final.jar;D:\anzhuangderuanjian\repository\io\netty\netty-resolver\4.1.128.Final\netty-resolver-4.1.128.Final.jar;D:\anzhuangderuanjian\repository\io\netty\netty-resolver-dns\4.1.128.Final\netty-resolver-dns-4.1.128.Final.jar;D:\anzhuangderuanjian\repository\io\netty\netty-codec-dns\4.1.128.Final\netty-codec-dns-4.1.128.Final.jar;D:\anzhuangderuanjian\repository\javax\cache\cache-api\1.1.1\cache-api-1.1.1.jar;D:\anzhuangderuanjian\repository\org\reactivestreams\reactive-streams\1.0.4\reactive-streams-1.0.4.jar;D:\anzhuangderuanjian\repository\io\reactivex\rxjava3\rxjava\3.1.12\rxjava-3.1.12.jar;D:\anzhuangderuanjian\repository\com\esotericsoftware\kryo\5.6.2\kryo-5.6.2.jar;D:\anzhuangderuanjian\repository\com\esotericsoftware\reflectasm\1.11.9\reflectasm-1.11.9.jar;D:\anzhuangderuanjian\repository\org\objenesis\objenesis\3.4\objenesis-3.4.jar;D:\anzhuangderuanjian\repository\com\esotericsoftware\minlog\1.3.1\minlog-1.3.1.jar;D:\anzhuangderuanjian\repository\com\fasterxml\jackson\dataformat\jackson-dataformat-yaml\2.19.2\jackson-dataformat-yaml-2.19.2.jar;D:\anzhuangderuanjian\repository\net\bytebuddy\byte-buddy\1.17.8\byte-buddy-1.17.8.jar;D:\anzhuangderuanjian\repository\org\jodd\jodd-util\6.3.0\jodd-util-6.3.0.jar;D:\anzhuangderuanjian\repository\org\redisson\redisson-spring-data-35\3.52.0\redisson-spring-data-35-3.52.0.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\system-spring-boot-starter\2024.0.0-beta.84\system-spring-boot-starter-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\common-crypto\2024.0.0-beta.84\common-crypto-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\cn\hutool\hutool-crypto\5.8.40\hutool-crypto-5.8.40.jar;D:\anzhuangderuanjian\repository\org\bouncycastle\bcprov-jdk18on\1.81\bcprov-jdk18on-1.81.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\storage-spring-boot-starter\2024.0.0-beta.84\storage-spring-boot-starter-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\cn\hutool\hutool-core\5.8.40\hutool-core-5.8.40.jar;D:\anzhuangderuanjian\repository\org\apache\tika\tika-core\3.2.3\tika-core-3.2.3.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\mybatis-flex-spring-boot-starter\2024.0.0-beta.84\mybatis-flex-spring-boot-starter-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\com\mybatis-flex\mybatis-flex-spring-boot3-starter\1.11.3\mybatis-flex-spring-boot3-starter-1.11.3.jar;D:\anzhuangderuanjian\repository\com\mybatis-flex\mybatis-flex-spring-boot-starter\1.11.3\mybatis-flex-spring-boot-starter-1.11.3.jar;D:\anzhuangderuanjian\repository\com\mybatis-flex\mybatis-flex-spring\1.11.3\mybatis-flex-spring-1.11.3.jar;D:\anzhuangderuanjian\repository\org\springframework\spring-jdbc\6.2.12\spring-jdbc-6.2.12.jar;D:\anzhuangderuanjian\repository\com\mybatis-flex\mybatis-flex-core\1.11.3\mybatis-flex-core-1.11.3.jar;D:\anzhuangderuanjian\repository\org\mybatis\mybatis-spring\3.0.4\mybatis-spring-3.0.4.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\dict-spring-boot-starter\2024.0.0-beta.84\dict-spring-boot-starter-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\cn\hutool\hutool-cache\5.8.40\hutool-cache-5.8.40.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\captcha-spring-boot-starter\2024.0.0-beta.84\captcha-spring-boot-starter-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\io\swagger\core\v3\swagger-annotations-jakarta\2.2.38\swagger-annotations-jakarta-2.2.38.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\selector-spring-boot-starter\2024.0.0-beta.84\selector-spring-boot-starter-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\sso-spring-boot-starter\2024.0.0-beta.84\sso-spring-boot-starter-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\com\nimbusds\oauth2-oidc-sdk\11.29.2\oauth2-oidc-sdk-11.29.2.jar;D:\anzhuangderuanjian\repository\com\github\stephenc\jcip\jcip-annotations\1.0-1\jcip-annotations-1.0-1.jar;D:\anzhuangderuanjian\repository\com\nimbusds\content-type\2.3\content-type-2.3.jar;D:\anzhuangderuanjian\repository\net\minidev\json-smart\2.5.2\json-smart-2.5.2.jar;D:\anzhuangderuanjian\repository\net\minidev\accessors-smart\2.5.2\accessors-smart-2.5.2.jar;D:\anzhuangderuanjian\repository\org\ow2\asm\asm\9.7.1\asm-9.7.1.jar;D:\anzhuangderuanjian\repository\com\nimbusds\lang-tag\1.7\lang-tag-1.7.jar;D:\anzhuangderuanjian\repository\com\nimbusds\nimbus-jose-jwt\10.5\nimbus-jose-jwt-10.5.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\auth-sdk-spring-boot-starter\2024.0.0-beta.84\auth-sdk-spring-boot-starter-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\cn\dev33\sa-token-spring-boot3-starter\1.44.0\sa-token-spring-boot3-starter-1.44.0.jar;D:\anzhuangderuanjian\repository\cn\dev33\sa-token-jakarta-servlet\1.44.0\sa-token-jakarta-servlet-1.44.0.jar;D:\anzhuangderuanjian\repository\cn\dev33\sa-token-spring-boot-autoconfig\1.44.0\sa-token-spring-boot-autoconfig-1.44.0.jar;D:\anzhuangderuanjian\repository\cn\dev33\sa-token-redis-jackson\1.44.0\sa-token-redis-jackson-1.44.0.jar;D:\anzhuangderuanjian\repository\cn\dev33\sa-token-jackson\1.44.0\sa-token-jackson-1.44.0.jar;D:\anzhuangderuanjian\repository\cn\dev33\sa-token-redis-template\1.44.0\sa-token-redis-template-1.44.0.jar;D:\anzhuangderuanjian\repository\cn\dev33\sa-token-spring-aop\1.44.0\sa-token-spring-aop-1.44.0.jar;D:\anzhuangderuanjian\repository\cn\dev33\sa-token-core\1.44.0\sa-token-core-1.44.0.jar;D:\anzhuangderuanjian\repository\org\springframework\boot\spring-boot-starter-aop\3.5.7\spring-boot-starter-aop-3.5.7.jar;D:\anzhuangderuanjian\repository\org\aspectj\aspectjweaver\1.9.24\aspectjweaver-1.9.24.jar;D:\anzhuangderuanjian\repository\cn\dev33\sa-token-jwt\1.44.0\sa-token-jwt-1.44.0.jar;D:\anzhuangderuanjian\repository\cn\hutool\hutool-jwt\5.8.40\hutool-jwt-5.8.40.jar;D:\anzhuangderuanjian\repository\cn\hutool\hutool-json\5.8.40\hutool-json-5.8.40.jar;D:\anzhuangderuanjian\repository\org\springdoc\springdoc-openapi-starter-webmvc-ui\2.8.13\springdoc-openapi-starter-webmvc-ui-2.8.13.jar;D:\anzhuangderuanjian\repository\org\webjars\swagger-ui\5.28.1\swagger-ui-5.28.1.jar;D:\anzhuangderuanjian\repository\org\webjars\webjars-locator-lite\1.1.2\webjars-locator-lite-1.1.2.jar;D:\anzhuangderuanjian\repository\io\github\linpeilie\mapstruct-plus-spring-boot-starter\1.5.0\mapstruct-plus-spring-boot-starter-1.5.0.jar;D:\anzhuangderuanjian\repository\io\github\linpeilie\mapstruct-plus\1.5.0\mapstruct-plus-1.5.0.jar;D:\anzhuangderuanjian\repository\org\mapstruct\mapstruct\1.6.3\mapstruct-1.6.3.jar;D:\anzhuangderuanjian\repository\io\github\linpeilie\mapstruct-plus-object-convert\1.5.0\mapstruct-plus-object-convert-1.5.0.jar;D:\anzhuangderuanjian\repository\com\alibaba\transmittable-thread-local\2.14.5\transmittable-thread-local-2.14.5.jar;D:\anzhuangderuanjian\repository\com\unboundid\product\scim2\scim2-sdk-server\4.1.0\scim2-sdk-server-4.1.0.jar;D:\anzhuangderuanjian\repository\com\unboundid\product\scim2\scim2-sdk-common\4.1.0\scim2-sdk-common-4.1.0.jar;D:\anzhuangderuanjian\repository\jakarta\xml\bind\jakarta.xml.bind-api\4.0.4\jakarta.xml.bind-api-4.0.4.jar;D:\anzhuangderuanjian\repository\jakarta\activation\jakarta.activation-api\2.1.4\jakarta.activation-api-2.1.4.jar;D:\anzhuangderuanjian\repository\com\unboundid\product\scim2\scim2-sdk-client\4.1.0\scim2-sdk-client-4.1.0.jar;D:\anzhuangderuanjian\repository\com\fasterxml\jackson\core\jackson-core\2.19.2\jackson-core-2.19.2.jar;D:\anzhuangderuanjian\repository\com\fasterxml\jackson\jakarta\rs\jackson-jakarta-rs-json-provider\2.19.2\jackson-jakarta-rs-json-provider-2.19.2.jar;D:\anzhuangderuanjian\repository\com\fasterxml\jackson\module\jackson-module-jakarta-xmlbind-annotations\2.19.2\jackson-module-jakarta-xmlbind-annotations-2.19.2.jar;D:\anzhuangderuanjian\repository\com\fasterxml\jackson\jakarta\rs\jackson-jakarta-rs-base\2.19.2\jackson-jakarta-rs-base-2.19.2.jar;D:\anzhuangderuanjian\repository\com\zaxxer\HikariCP\6.3.3\HikariCP-6.3.3.jar;D:\anzhuangderuanjian\repository\org\slf4j\slf4j-api\2.0.17\slf4j-api-2.0.17.jar;D:\anzhuangderuanjian\repository\org\projectlombok\lombok\1.18.42\lombok-1.18.42.jar;D:\anzhuangderuanjian\repository\com\coscoshipping\framework\annotation-processor\2024.0.0-beta.84\annotation-processor-2024.0.0-beta.84.jar;D:\anzhuangderuanjian\repository\org\springframework\boot\spring-boot-configuration-processor\3.5.7\spring-boot-configuration-processor-3.5.7.jar;D:\anzhuangderuanjian\repository\com\mybatis-flex\mybatis-flex-processor\1.11.3\mybatis-flex-processor-1.11.3.jar;D:\anzhuangderuanjian\repository\com\mybatis-flex\mybatis-flex-annotation\1.11.3\mybatis-flex-annotation-1.11.3.jar;D:\anzhuangderuanjian\repository\org\mybatis\mybatis\3.5.19\mybatis-3.5.19.jar;D:\anzhuangderuanjian\repository\org\projectlombok\lombok-mapstruct-binding\0.2.0\lombok-mapstruct-binding-0.2.0.jar;D:\anzhuangderuanjian\repository\io\github\linpeilie\mapstruct-plus-processor\1.5.0\mapstruct-plus-processor-1.5.0.jar;D:\anzhuangderuanjian\repository\cn\easii\tutelary-repackage-javapoet\1.0.5\tutelary-repackage-javapoet-1.0.5.jar;D:\anzhuangderuanjian\repository\org\mapstruct\mapstruct-processor\1.6.3\mapstruct-processor-1.6.3.jar;D:\anzhuangderuanjian\repository\org\mapstruct\tools\gem\gem-api\1.0.0.Alpha3\gem-api-1.0.0.Alpha3.jar;D:\anzhuangderuanjian\repository\com\google\auto\service\auto-service\1.1.1\auto-service-1.1.1.jar;D:\anzhuangderuanjian\repository\com\google\auto\auto-common\1.2.1\auto-common-1.2.1.jar;D:\anzhuangderuanjian\repository\com\google\guava\guava\33.4.8-jre\guava-33.4.8-jre.jar;D:\anzhuangderuanjian\repository\com\google\guava\failureaccess\1.0.3\failureaccess-1.0.3.jar;D:\anzhuangderuanjian\repository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;D:\anzhuangderuanjian\repository\com\google\errorprone\error_prone_annotations\2.41.0\error_prone_annotations-2.41.0.jar;D:\anzhuangderuanjian\repository\com\google\j2objc\j2objc-annotations\3.0.0\j2objc-annotations-3.0.0.jar;D:\anzhuangderuanjian\repository\com\mysql\mysql-connector-j\9.4.0\mysql-connector-j-9.4.0.jar;D:\anzhuangderuanjian\repository\com\huawei\gaussdb\gaussdbjdbc\5.0.0-htrunk4.csi.gaussdb_kernel.opengaussjdbc.r12\gaussdbjdbc-5.0.0-htrunk4.csi.gaussdb_kernel.opengaussjdbc.r12.jar;D:\IntelliJ IDEA 2025.1\lib\idea_rt.jar" com.coscoshipping.technology.Application Connected to the target VM, address: '127.0.0.1:50976', transport: 'socket' _____ ____ _____ _____ ____ _____ _ _ ______ _ / ____/ __ \ / ____|/ ____/ __ \ / ____| | | | | ____| | | | | | | | | (___ | | | | | | | | | | ___ _ _ __| | | |__ _ __ __ _ _ __ ___ _____ _____ _ __| | __ | | | | | |\___ \| | | | | | | | | |/ _ \| | | |/ _` | | __| '__/ _` | '_ ` _ \ / _ \ \ /\ / / _ \| '__| |/ / | |___| |__| |____) | |___| |__| | | |____| | (_) | |_| | (_| | | | | | | (_| | | | | | | __/\ V V / (_) | | | < \_____\____/|_____/ \_____\____/ \_____|_|\___/ \__,_|\__,_| |_| |_| \__,_|_| |_| |_|\___| \_/\_/ \___/|_| |_|\_\ ======================================================================================================================= :: Application Name :: zyhyApplication :: Active Profile :: dev :: Spring Boot Version :: 3.5.7 :: COSCO Cloud Framework DM Version :: 2024.0.0-beta.84 Java Runtime Info :: Java Runtime Vendor :: Oracle Corporation :: Java Runtime Version :: 21.0.9 :: Java Runtime Version Date :: 2025-10-21 :: Java Runtime Home :: E:\MyOffice\jdk\jdk-21.0.9 ======================================================================================================================= 2025-11-18T15:21:20.994+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.a.env.EnvironmentProcessor : [CCFAutoConfiguration] sa-token config [sa-token.active-timeout] => [1800] 2025-11-18T15:21:20.995+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.a.env.EnvironmentProcessor : [CCFAutoConfiguration] sa-token config [sa-token.is-read-cookie] => [false] 2025-11-18T15:21:20.995+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.a.env.EnvironmentProcessor : [CCFAutoConfiguration] sa-token config [sa-token.is-read-body] => [false] 2025-11-18T15:21:20.997+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.a.env.EnvironmentProcessor : [CCFAutoConfiguration] sa-token config [sa-token.is-concurrent] => [false] 2025-11-18T15:21:20.997+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.a.env.EnvironmentProcessor : [CCFAutoConfiguration] sa-token config [sa-token.jwt-secret-key] => [zd4P8Em3GH20tIfEieuyL0GzGhxdgq4l] 2025-11-18T15:21:20.997+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.a.env.EnvironmentProcessor : [CCFAutoConfiguration] ProtectedEndpoint HttpBasic username has been generate [2LEjpg]. 2025-11-18T15:21:20.997+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.a.env.EnvironmentProcessor : [CCFAutoConfiguration] ProtectedEndpoint HttpBasic password has been generate [y^/>QN>PB68N%yn6U8]. 2025-11-18T15:21:20.997+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.a.env.EnvironmentProcessor : [CCFAutoConfiguration] Druid Monitor Login username has been configured using http-basic. 2025-11-18T15:21:20.997+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.a.env.EnvironmentProcessor : [CCFAutoConfiguration] Druid Monitor Login password has been configured using http-basic. 2025-11-18T15:21:20.997+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.a.env.EnvironmentProcessor : [CCFAutoConfiguration] Cross-domain configuration was detected, cross-domain function has been enabled. 2025-11-18T15:21:20.997+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.a.env.EnvironmentProcessor : [CCFAutoConfiguration] Handler [GlobalExceptionHandler] has been configured, basePackages: [ccf, com.coscoshipping.framework, com.coscoshipping.technology]. 2025-11-18T15:21:21.000+08:00 INFO 29292 --- [zyhyApplication] [ main] c.coscoshipping.technology.Application : Starting Application using Java 21.0.9 with PID 29292 (E:\ZhongYuanHaiYun\digital-large-screen-service-main\target\classes started by xuliang in E:\ZhongYuanHaiYun\digital-large-screen-service-main) 2025-11-18T15:21:21.000+08:00 INFO 29292 --- [zyhyApplication] [ main] c.coscoshipping.technology.Application : The following 1 profile is active: "dev" 2025-11-18T15:21:22.309+08:00 INFO 29292 --- [zyhyApplication] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode 2025-11-18T15:21:22.311+08:00 INFO 29292 --- [zyhyApplication] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode. 2025-11-18T15:21:22.335+08:00 INFO 29292 --- [zyhyApplication] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 10 ms. Found 0 Redis repository interfaces. 2025-11-18T15:21:22.417+08:00 WARN 29292 --- [zyhyApplication] [ main] o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[com.coscoshipping.technology.mapper]' package. Please check your configuration. 2025-11-18T15:21:22.845+08:00 WARN 29292 --- [zyhyApplication] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'spring.redis.redisson-org.redisson.spring.starter.RedissonProperties' of type [org.redisson.spring.starter.RedissonProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-11-18T15:21:22.852+08:00 WARN 29292 --- [zyhyApplication] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'spring.data.redis-org.springframework.boot.autoconfigure.data.redis.RedisProperties' of type [org.springframework.boot.autoconfigure.data.redis.RedisProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-11-18T15:21:22.852+08:00 WARN 29292 --- [zyhyApplication] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.redisson.spring.starter.RedissonAutoConfigurationV2' of type [org.redisson.spring.starter.RedissonAutoConfigurationV2] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-11-18T15:21:22.853+08:00 WARN 29292 --- [zyhyApplication] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration' of type [org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-11-18T15:21:22.859+08:00 WARN 29292 --- [zyhyApplication] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'spring.ssl-org.springframework.boot.autoconfigure.ssl.SslProperties' of type [org.springframework.boot.autoconfigure.ssl.SslProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-11-18T15:21:22.860+08:00 WARN 29292 --- [zyhyApplication] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.boot.autoconfigure.ssl.SslAutoConfiguration' of type [org.springframework.boot.autoconfigure.ssl.SslAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-11-18T15:21:22.864+08:00 WARN 29292 --- [zyhyApplication] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'fileWatcher' of type [org.springframework.boot.autoconfigure.ssl.FileWatcher] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-11-18T15:21:22.865+08:00 WARN 29292 --- [zyhyApplication] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'sslPropertiesSslBundleRegistrar' of type [org.springframework.boot.autoconfigure.ssl.SslPropertiesBundleRegistrar] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-11-18T15:21:22.873+08:00 WARN 29292 --- [zyhyApplication] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'sslBundleRegistry' of type [org.springframework.boot.ssl.DefaultSslBundleRegistry] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-11-18T15:21:22.873+08:00 WARN 29292 --- [zyhyApplication] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'redisConnectionDetails' of type [org.springframework.boot.autoconfigure.data.redis.PropertiesRedisConnectionDetails] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-11-18T15:21:22.927+08:00 INFO 29292 --- [zyhyApplication] [ main] org.redisson.Version : Redisson 3.52.0 2025-11-18T15:21:23.346+08:00 INFO 29292 --- [zyhyApplication] [isson-netty-1-5] o.redisson.connection.ConnectionsHolder : 1 connections initialized for 127.0.0.1/127.0.0.1:6379 2025-11-18T15:21:23.421+08:00 INFO 29292 --- [zyhyApplication] [sson-netty-1-19] o.redisson.connection.ConnectionsHolder : 24 connections initialized for 127.0.0.1/127.0.0.1:6379 2025-11-18T15:21:23.464+08:00 WARN 29292 --- [zyhyApplication] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'redisson' of type [org.redisson.Redisson] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-11-18T15:21:23.479+08:00 WARN 29292 --- [zyhyApplication] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'redissonConnectionFactory' of type [org.redisson.spring.data.connection.RedissonConnectionFactory] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-11-18T15:21:23.481+08:00 WARN 29292 --- [zyhyApplication] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'com.coscoshipping.framework.redis.autoconfigure.CachingAutoConfiguration' of type [com.coscoshipping.framework.redis.autoconfigure.CachingAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-11-18T15:21:23.495+08:00 WARN 29292 --- [zyhyApplication] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'cn.dev33.satoken.aop.SaAopPointcutAdvisorBeanRegister' of type [cn.dev33.satoken.aop.SaAopPointcutAdvisorBeanRegister$$SpringCGLIB$$0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-11-18T15:21:23.511+08:00 WARN 29292 --- [zyhyApplication] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'saAroundAnnotationHandlePointcutAdvisor' of type [cn.dev33.satoken.aop.SaAroundAnnotationPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE. 2025-11-18T15:21:23.885+08:00 INFO 29292 --- [zyhyApplication] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 9001 (http) 2025-11-18T15:21:23.900+08:00 INFO 29292 --- [zyhyApplication] [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2025-11-18T15:21:23.900+08:00 INFO 29292 --- [zyhyApplication] [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.48] 2025-11-18T15:21:23.975+08:00 INFO 29292 --- [zyhyApplication] [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2025-11-18T15:21:23.975+08:00 INFO 29292 --- [zyhyApplication] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2931 ms 2025-11-18T15:21:23.995+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.a.cors.CorsAutoConfiguration : [CCFAutoConfiguration] CORS has been configured. 2025-11-18T15:21:24.455+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.m.a.MyBatisFlexConfiguration : [CCFAutoConfiguration] [MybatisFlex] register keyConfig is [Generator] => [ccf-auto]. 2025-11-18T15:21:24.455+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.m.a.MyBatisFlexConfiguration : [CCFAutoConfiguration] [MybatisFlex] register insert listener [com.coscoshipping.framework.core.entity.BaseEntity] => [com.coscoshipping.framework.mybatisflex.listener.CreatedTimeListener]. 2025-11-18T15:21:24.455+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.m.a.MyBatisFlexConfiguration : [CCFAutoConfiguration] [MybatisFlex] register insert listener [com.coscoshipping.framework.mybatisflex.extensions.Extensible] => [com.coscoshipping.framework.mybatisflex.listener.ExtensibleEntityInsertListener]. 2025-11-18T15:21:24.455+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.m.a.MyBatisFlexConfiguration : [CCFAutoConfiguration] [MybatisFlex] register insert listener [com.coscoshipping.framework.core.entity.BaseEntity] => [com.coscoshipping.framework.sdk.auth.mybatisflex.listener.CreatedUserListener]. 2025-11-18T15:21:24.457+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.m.a.MyBatisFlexConfiguration : [CCFAutoConfiguration] [MybatisFlex] register insert listener [com.coscoshipping.framework.mybatisflex.entity.OrganizationBaseEntity] => [com.coscoshipping.framework.sdk.auth.mybatisflex.listener.OrganizationBaseEntityInsertListener]. 2025-11-18T15:21:24.457+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.m.a.MyBatisFlexConfiguration : [CCFAutoConfiguration] [MybatisFlex] register insert listener [com.coscoshipping.framework.system.model.po.Organization] => [com.coscoshipping.framework.system.listener.OrganizationInsertListener$$SpringCGLIB$$0]. 2025-11-18T15:21:24.458+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.m.a.MyBatisFlexConfiguration : [CCFAutoConfiguration] [MybatisFlex] register update listener [com.coscoshipping.framework.mybatisflex.extensions.Extensible] => [com.coscoshipping.framework.mybatisflex.listener.ExtensibleEntityUpdateListener]. 2025-11-18T15:21:24.458+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.m.a.MyBatisFlexConfiguration : [CCFAutoConfiguration] [MybatisFlex] register update listener [com.coscoshipping.framework.core.entity.BaseEntity] => [com.coscoshipping.framework.mybatisflex.listener.ModifiedTimeListener]. 2025-11-18T15:21:24.460+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.m.a.MyBatisFlexConfiguration : [CCFAutoConfiguration] [MybatisFlex] register update listener [com.coscoshipping.framework.core.entity.BaseEntity] => [com.coscoshipping.framework.sdk.auth.mybatisflex.listener.ModifiedUserListener]. 2025-11-18T15:21:25.020+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.s.a.SystemManagerAutoConfiguration : [CCFAutoConfiguration] Default PasswordEncoder [BCryptPasswordEncoder] has been configured. 2025-11-18T15:21:25.242+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.s.a.SystemManagerAutoConfiguration : [CCFAutoConfiguration] Default UserLoginOrganizationSelector has been configured. 2025-11-18T15:21:25.245+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.s.a.SystemManagerAutoConfiguration : [CCFAutoConfiguration] Default [UserDetailsChecker] has been configured. 2025-11-18T15:21:25.558+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.s.a.StorageAutoConfiguration : [CCFAutoConfiguration] StorageService has been configured [LOCAL]. 2025-11-18T15:21:25.721+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.s.d.DataPermissionScopeService : [CCFAutoConfiguration] initializing the data permission scope provider. 2025-11-18T15:21:25.721+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.s.d.DataPermissionScopeService : Successfully registered data permission scope provider: [ORGANIZATION] - 组织机构 2025-11-18T15:21:25.721+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.s.d.DataPermissionScopeService : [CCFAutoConfiguration] The data permission scope provider is initialized, and a total of [1] scopes are registered 2025-11-18T15:21:25.876+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.s.a.SystemManagerAutoConfiguration : [CCFAutoConfiguration] Default ReversiblePasswordEncoder [SM4ReversiblePasswordEncoder] has been configured. 2025-11-18T15:21:26.472+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.w.a.WebAutoConfiguration : [CCFAutoConfiguration] Default [IdMaskProvider] has been configured. 2025-11-18T15:21:26.596+08:00 INFO 29292 --- [zyhyApplication] [ main] .JacksonCustomizerMixinAutoConfiguration : [CCFAutoConfiguration] IdMask has enabled and will automatically process all id fields inherited from [IdEntity,BaseEntity,TenantBaseEntity]. 2025-11-18T15:21:26.686+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.w.a.ErrorAutoConfiguration : [CCFAutoConfiguration] [ErrorController] has been enabled. 2025-11-18T15:21:27.344+08:00 INFO 29292 --- [zyhyApplication] [ main] org.redisson.jcache.JCachingProvider : JCacheManager created with uri: jsr107-default-config and properties: {} 2025-11-18T15:21:27.773+08:00 INFO 29292 --- [zyhyApplication] [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 3 endpoints beneath base path '/actuator' 2025-11-18T15:21:27.893+08:00 INFO 29292 --- [zyhyApplication] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 9001 (http) with context path '/' 2025-11-18T15:21:27.908+08:00 INFO 29292 --- [zyhyApplication] [ main] c.coscoshipping.technology.Application : Started Application in 7.352 seconds (process running for 8.267) 2025-11-18T15:21:27.959+08:00 INFO 29292 --- [zyhyApplication] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2025-11-18T15:21:28.164+08:00 INFO 29292 --- [zyhyApplication] [-10.200.249.252] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2025-11-18T15:21:28.164+08:00 INFO 29292 --- [zyhyApplication] [-10.200.249.252] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2025-11-18T15:21:28.167+08:00 INFO 29292 --- [zyhyApplication] [-10.200.249.252] o.s.web.servlet.DispatcherServlet : Completed initialization in 3 ms 2025-11-18T15:21:28.805+08:00 INFO 29292 --- [zyhyApplication] [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@69e0e347 2025-11-18T15:21:28.808+08:00 INFO 29292 --- [zyhyApplication] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2025-11-18T15:21:29.273+08:00 INFO 29292 --- [zyhyApplication] [-10.200.249.252] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Starting... 2025-11-18T15:21:29.559+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.w.util.ExceptionDescriptionUtils : [CCFAutoConfiguration] [ExceptionDescription] Package [com.coscoshipping.framework] has been scanned. 2025-11-18T15:21:29.559+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.w.util.ExceptionDescriptionUtils : [CCFAutoConfiguration] [ExceptionDescription] Package [ccf] has been scanned. 2025-11-18T15:21:29.564+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.w.util.ExceptionDescriptionUtils : [CCFAutoConfiguration] [ExceptionDescription] Package [com.coscoshipping.technology] has been scanned. 2025-11-18T15:21:29.613+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.framework.dict.util.EnumDictUtils : [CCFAutoConfiguration] [DictEnum] Package [com.coscoshipping.framework] has been scanned. 2025-11-18T15:21:29.614+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.framework.dict.util.EnumDictUtils : [CCFAutoConfiguration] [DictEnum] Package [ccf] has been scanned. 2025-11-18T15:21:29.616+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.framework.dict.util.EnumDictUtils : [CCFAutoConfiguration] [DictEnum] Package [com.coscoshipping.technology] has been scanned. 2025-11-18T15:21:29.698+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.sso.util.OidcProviderUtils : [CCFAutoConfiguration] [OidcRequest] Package [com.coscoshipping.framework] has been scanned. 2025-11-18T15:21:29.699+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.sso.util.OidcProviderUtils : [CCFAutoConfiguration] [OidcRequest] Package [ccf] has been scanned. 2025-11-18T15:21:29.701+08:00 INFO 29292 --- [zyhyApplication] [ main] c.c.f.sso.util.OidcProviderUtils : [CCFAutoConfiguration] [OidcRequest] Package [com.coscoshipping.technology] has been scanned. 2025-11-18T15:21:29.964+08:00 INFO 29292 --- [zyhyApplication] [-10.200.249.252] com.zaxxer.hikari.pool.HikariPool : HikariPool-2 - Added connection com.huawei.gaussdb.jdbc.jdbc.PgConnection@61ad1c5d 2025-11-18T15:21:29.964+08:00 INFO 29292 --- [zyhyApplication] [-10.200.249.252] com.zaxxer.hikari.HikariDataSource : HikariPool-2 - Start completed. 2025-11-18T15:21:30.709+08:00 INFO 29292 --- [zyhyApplication] [pool-3-thread-1] o.springdoc.api.AbstractOpenApiResource : Init duration for springdoc-openapi is: 1005 ms ---------------------------------------------------------------------功 分析一下日志
11-19
从日志来看,项目已经成功启动,但存在一些需要注意的问题和潜在优化点。以下是详细分析: --- ### **1. 关键成功指标** - **启动完成**:`Started Application in 7.352 seconds` 表明应用在7.3秒内完成启动 - **服务监听**:Tomcat在端口9001成功启动 (`Tomcat started on port 9001`) - **数据源初始化**: - HikariPool-1(主数据源)连接MySQL成功 - HikariPool-2(从数据源)连接GaussDB成功 - **核心功能加载**: - 安全框架SA-Token配置生效 - MyBatis-Flex监听器注册完成 - 数据权限范围初始化(ORGANIZATION) - 存储服务(LOCAL模式)就绪 --- ### **2. 警告和潜在问题** #### **(1) Bean后处理警告** ```log Bean 'spring.redis.redisson-org.redisson.spring.starter.RedissonProperties'... not eligible for getting processed by all BeanPostProcessors ``` **原因**:Redisson相关Bean过早初始化,可能影响依赖注入顺序 **建议**:检查是否有`@DependsOn`或`@Lazy`注解使用不当 #### **(2) MyBatis映射器扫描** ```log No MyBatis mapper was found in '[com.coscoshipping.technology.mapper]' package ``` **验证**:确认是否为预期行为(若使用MyBatis-Flex注解方式可忽略) #### **(3) JCache配置** ```log JCacheManager created with uri: jsr107-default-config ``` **风险**:使用了默认缓存配置,生产环境需要明确配置缓存策略 --- ### **3. 关键组件状态** | 组件 | 状态 | 配置详情 | |----------------------|------------------------------|--------------------------------------| | **安全框架** | SA-Token启用 | 会话超时1800秒,JWT密钥已配置 | | **数据源** | 双数据源就绪 | MySQL(主)+GaussDB(从) | | **存储服务** | 本地存储模式 | 需确认文件存储路径 | | **跨域支持** | 已启用 | 需检查生产环境的安全策略 | | **监控端点** | 暴露3个Actuator端点 | 需确认是否包含敏感端点(/env等) | --- ### **4. 性能相关指标** - **启动阶段耗时分布**: - 上下文初始化:2931ms - Redisson连接池初始化:~500ms - Tomcat启动:~800ms - **连接池初始化**: - MySQL连接建立耗时:约400ms - GaussDB连接建立耗时:约600ms(可能存在网络或驱动性能问题) --- ### **5. 安全配置检查** - **敏感信息**: - SA-Token的JWT密钥硬编码在日志中(需立即重置) - Druid监控账号密码通过HTTP Basic生成(建议自定义) - **端点保护**: - Actuator基础路径为`/actuator`(建议添加IP白名单) --- ### **6. 优化建议** 1. **日志脱敏**: ```java // 在application.yml中添加 logging: pattern: console: "%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n" level: org.redisson: WARN // 减少Redisson详细日志 ``` 2. **连接池调优**: ```yaml spring: datasource: primary: hikari: maximum-pool-size: 10 # 根据负载调整 connection-timeout: 30000 secondary: hikari: maximum-pool-size: 5 # 读库可减小 ``` 3. **缓存明确化**: ```java @Configuration @EnableCaching public class CacheConfig { @Bean public CacheManager cacheManager(RedissonClient redisson) { return new RedissonSpringCacheManager(redisson); } } ``` 4. **启动加速**: ```properties # 关闭不需要的自动配置 spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration ``` --- ### **7. 后续验证步骤** 1. **接口测试**: ```bash curl -X GET http://localhost:9001/actuator/health ``` 2. **数据源验证**: ```java @SpringBootTest class DataSourceTest { @Autowired @Qualifier("primaryDataSource") DataSource ds1; @Autowired @Qualifier("secondaryDataSource") DataSource ds2; // 测试连接有效性... } ``` 3. **压力测试准备**: - 使用JMeter模拟多数据源并发请求
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值