From dd2b4d0e4bb646a17f31c7c2c2452e893ad2a7d4 Mon Sep 17 00:00:00 2001 From: likingcode Date: Sat, 7 Mar 2026 09:17:16 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修复 RootController 返回 index.html - 修复 MyBatis 缓存配置 - 修复 session scope bean 注入问题 --- springboot.log | 876 ++++++++++++++---- .../scaffold/controller/RootController.java | 34 +- .../learning/IocLearningController.java | 7 +- .../example/scaffold/mapper/UserMapper.java | 4 +- .../scaffold/controller/RootController.class | Bin 644 -> 2009 bytes .../IocLearningController$LearningBean.class | Bin 2226 -> 2226 bytes .../learning/IocLearningController.class | Bin 8465 -> 8238 bytes .../example/scaffold/mapper/UserMapper.class | Bin 2372 -> 2285 bytes target/springboot-scaffold-1.0.0.jar | Bin 52752478 -> 52752920 bytes target/springboot-scaffold-1.0.0.jar.original | Bin 73110 -> 73552 bytes 10 files changed, 728 insertions(+), 193 deletions(-) diff --git a/springboot.log b/springboot.log index 1fe4c98..a75fc6c 100644 --- a/springboot.log +++ b/springboot.log @@ -7,187 +7,697 @@ =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.2.3) -2026-03-07T08:34:17.523Z INFO 1388476 --- [springboot-scaffold] [ main] c.e.s.SpringbootScaffoldApplication : Starting SpringbootScaffoldApplication v1.0.0 using Java 21.0.10 with PID 1388476 (/home/llm/Projects/springboot-scaffold/target/springboot-scaffold-1.0.0.jar started by llm in /home/llm/Projects/springboot-scaffold) -2026-03-07T08:34:17.535Z DEBUG 1388476 --- [springboot-scaffold] [ main] c.e.s.SpringbootScaffoldApplication : Running with Spring Boot v3.2.3, Spring v6.1.4 -2026-03-07T08:34:17.539Z INFO 1388476 --- [springboot-scaffold] [ main] c.e.s.SpringbootScaffoldApplication : No active profile set, falling back to 1 default profile: "default" -2026-03-07T08:34:23.786Z INFO 1388476 --- [springboot-scaffold] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. -2026-03-07T08:34:23.807Z INFO 1388476 --- [springboot-scaffold] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 11 ms. Found 0 JPA repository interfaces. -2026-03-07T08:34:30.399Z INFO 1388476 --- [springboot-scaffold] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8082 (http) -2026-03-07T08:34:30.466Z INFO 1388476 --- [springboot-scaffold] [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] -2026-03-07T08:34:30.467Z INFO 1388476 --- [springboot-scaffold] [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.19] -2026-03-07T08:34:31.033Z INFO 1388476 --- [springboot-scaffold] [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext -2026-03-07T08:34:31.043Z INFO 1388476 --- [springboot-scaffold] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 13168 ms -2026-03-07T08:34:32.832Z INFO 1388476 --- [springboot-scaffold] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... -2026-03-07T08:34:34.286Z INFO 1388476 --- [springboot-scaffold] [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA -2026-03-07T08:34:34.295Z INFO 1388476 --- [springboot-scaffold] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. -2026-03-07T08:34:34.393Z INFO 1388476 --- [springboot-scaffold] [ main] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:file:~/h2/springboot_scaffold' -2026-03-07T08:34:37.699Z INFO 1388476 --- [springboot-scaffold] [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] -2026-03-07T08:34:38.061Z INFO 1388476 --- [springboot-scaffold] [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.4.4.Final -2026-03-07T08:34:38.254Z INFO 1388476 --- [springboot-scaffold] [ main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled -2026-03-07T08:34:39.633Z INFO 1388476 --- [springboot-scaffold] [ main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer -2026-03-07T08:34:45.616Z INFO 1388476 --- [springboot-scaffold] [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) -Hibernate: - create table orders ( - id bigint generated by default as identity, - created_at timestamp(6), - product_id bigint not null, - quantity integer not null, - status varchar(20), - total_price numeric(10,2) not null, - user_id bigint not null, - primary key (id) - ) -Hibernate: - create table products ( - id bigint generated by default as identity, - category varchar(50), - created_at timestamp(6), - description varchar(500), - name varchar(100) not null, - price numeric(10,2) not null, - stock_quantity integer, - primary key (id) - ) -Hibernate: - create table users ( - id bigint generated by default as identity, - active boolean not null, - bio TEXT, - created_at timestamp(6), - email varchar(100) not null, - phone varchar(20), - updated_at timestamp(6), - username varchar(50) not null, - primary key (id) - ) -2026-03-07T08:34:45.879Z INFO 1388476 --- [springboot-scaffold] [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' +2026-03-07T08:57:24.832Z INFO 1395465 --- [springboot-scaffold] [ main] c.e.s.SpringbootScaffoldApplication : Starting SpringbootScaffoldApplication v1.0.0 using Java 21.0.10 with PID 1395465 (/home/llm/Projects/springboot-scaffold/target/springboot-scaffold-1.0.0.jar started by llm in /home/llm/Projects/springboot-scaffold) +2026-03-07T08:57:24.840Z DEBUG 1395465 --- [springboot-scaffold] [ main] c.e.s.SpringbootScaffoldApplication : Running with Spring Boot v3.2.3, Spring v6.1.4 +2026-03-07T08:57:24.843Z INFO 1395465 --- [springboot-scaffold] [ main] c.e.s.SpringbootScaffoldApplication : No active profile set, falling back to 1 default profile: "default" +2026-03-07T08:57:32.385Z INFO 1395465 --- [springboot-scaffold] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. +2026-03-07T08:57:32.453Z INFO 1395465 --- [springboot-scaffold] [ main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 30 ms. Found 0 JPA repository interfaces. +2026-03-07T08:57:39.150Z INFO 1395465 --- [springboot-scaffold] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8082 (http) +2026-03-07T08:57:39.218Z INFO 1395465 --- [springboot-scaffold] [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] +2026-03-07T08:57:39.222Z INFO 1395465 --- [springboot-scaffold] [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.19] +2026-03-07T08:57:39.853Z INFO 1395465 --- [springboot-scaffold] [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext +2026-03-07T08:57:39.862Z INFO 1395465 --- [springboot-scaffold] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 14718 ms +2026-03-07T08:57:41.622Z INFO 1395465 --- [springboot-scaffold] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... +2026-03-07T08:57:43.594Z INFO 1395465 --- [springboot-scaffold] [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA +2026-03-07T08:57:43.610Z INFO 1395465 --- [springboot-scaffold] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. +2026-03-07T08:57:43.680Z INFO 1395465 --- [springboot-scaffold] [ main] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:file:~/h2/springboot_scaffold' +2026-03-07T08:57:47.458Z INFO 1395465 --- [springboot-scaffold] [ main] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] +2026-03-07T08:57:47.796Z INFO 1395465 --- [springboot-scaffold] [ main] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.4.4.Final +2026-03-07T08:57:48.002Z INFO 1395465 --- [springboot-scaffold] [ main] o.h.c.internal.RegionFactoryInitiator : HHH000026: Second-level cache disabled +2026-03-07T08:57:49.405Z INFO 1395465 --- [springboot-scaffold] [ main] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer +2026-03-07T08:57:56.408Z INFO 1395465 --- [springboot-scaffold] [ main] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) +2026-03-07T08:57:56.727Z INFO 1395465 --- [springboot-scaffold] [ main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter. -2026-03-07T08:34:47.256Z ERROR 1388476 --- [springboot-scaffold] [ main] o.m.spring.mapper.MapperFactoryBean : Error while adding the mapper 'interface com.example.scaffold.mapper.UserMapper' to configuration. - -org.apache.ibatis.cache.CacheException: Invalid base cache implementation (class org.apache.ibatis.cache.decorators.LruCache). Base cache implementations must have a constructor that takes a String id as a parameter. Cause: java.lang.NoSuchMethodException: org.apache.ibatis.cache.decorators.LruCache.(java.lang.String) - at org.apache.ibatis.mapping.CacheBuilder.getBaseCacheConstructor(CacheBuilder.java:195) ~[mybatis-3.5.14.jar!/:3.5.14] - at org.apache.ibatis.mapping.CacheBuilder.newBaseCacheInstance(CacheBuilder.java:183) ~[mybatis-3.5.14.jar!/:3.5.14] - at org.apache.ibatis.mapping.CacheBuilder.build(CacheBuilder.java:94) ~[mybatis-3.5.14.jar!/:3.5.14] - at org.apache.ibatis.builder.MapperBuilderAssistant.useNewCache(MapperBuilderAssistant.java:128) ~[mybatis-3.5.14.jar!/:3.5.14] - at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.parseCache(MapperAnnotationBuilder.java:191) ~[mybatis-3.5.14.jar!/:3.5.14] - at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.parse(MapperAnnotationBuilder.java:121) ~[mybatis-3.5.14.jar!/:3.5.14] - at org.apache.ibatis.binding.MapperRegistry.addMapper(MapperRegistry.java:72) ~[mybatis-3.5.14.jar!/:3.5.14] - at org.apache.ibatis.session.Configuration.addMapper(Configuration.java:895) ~[mybatis-3.5.14.jar!/:3.5.14] - at org.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:80) ~[mybatis-spring-3.0.3.jar!/:3.0.3] - at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44) ~[spring-tx-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1833) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:907) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:785) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:237) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1355) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1192) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:959) ~[spring-context-6.1.4.jar!/:6.1.4] - at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.4.jar!/:6.1.4] - at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.3.jar!/:3.2.3] - at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.3.jar!/:3.2.3] - at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.3.jar!/:3.2.3] - at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.3.jar!/:3.2.3] - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.3.jar!/:3.2.3] - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.3.jar!/:3.2.3] - at com.example.scaffold.SpringbootScaffoldApplication.main(SpringbootScaffoldApplication.java:9) ~[!/:1.0.0] - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] - at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:91) ~[springboot-scaffold-1.0.0.jar:1.0.0] - at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:53) ~[springboot-scaffold-1.0.0.jar:1.0.0] - at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:58) ~[springboot-scaffold-1.0.0.jar:1.0.0] -Caused by: java.lang.NoSuchMethodException: org.apache.ibatis.cache.decorators.LruCache.(java.lang.String) - at java.base/java.lang.Class.getConstructor0(Class.java:3763) ~[na:na] - at java.base/java.lang.Class.getConstructor(Class.java:2444) ~[na:na] - at org.apache.ibatis.mapping.CacheBuilder.getBaseCacheConstructor(CacheBuilder.java:193) ~[mybatis-3.5.14.jar!/:3.5.14] - ... 46 common frames omitted - -2026-03-07T08:34:47.276Z WARN 1388476 --- [springboot-scaffold] [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderService' defined in URL [jar:nested:/home/llm/Projects/springboot-scaffold/target/springboot-scaffold-1.0.0.jar/!BOOT-INF/classes/!/com/example/scaffold/service/impl/OrderService.class]: Unsatisfied dependency expressed through constructor parameter 2: Error creating bean with name 'userMapper' defined in URL [jar:nested:/home/llm/Projects/springboot-scaffold/target/springboot-scaffold-1.0.0.jar/!BOOT-INF/classes/!/com/example/scaffold/mapper/UserMapper.class]: org.apache.ibatis.cache.CacheException: Invalid base cache implementation (class org.apache.ibatis.cache.decorators.LruCache). Base cache implementations must have a constructor that takes a String id as a parameter. Cause: java.lang.NoSuchMethodException: org.apache.ibatis.cache.decorators.LruCache.(java.lang.String) -2026-03-07T08:34:47.280Z INFO 1388476 --- [springboot-scaffold] [ main] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' -2026-03-07T08:34:47.299Z INFO 1388476 --- [springboot-scaffold] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... -2026-03-07T08:34:47.328Z INFO 1388476 --- [springboot-scaffold] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. -2026-03-07T08:34:47.337Z INFO 1388476 --- [springboot-scaffold] [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat] -2026-03-07T08:34:47.461Z INFO 1388476 --- [springboot-scaffold] [ main] .s.b.a.l.ConditionEvaluationReportLogger : - -Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. -2026-03-07T08:34:47.549Z ERROR 1388476 --- [springboot-scaffold] [ main] o.s.boot.SpringApplication : Application run failed - -org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderService' defined in URL [jar:nested:/home/llm/Projects/springboot-scaffold/target/springboot-scaffold-1.0.0.jar/!BOOT-INF/classes/!/com/example/scaffold/service/impl/OrderService.class]: Unsatisfied dependency expressed through constructor parameter 2: Error creating bean with name 'userMapper' defined in URL [jar:nested:/home/llm/Projects/springboot-scaffold/target/springboot-scaffold-1.0.0.jar/!BOOT-INF/classes/!/com/example/scaffold/mapper/UserMapper.class]: org.apache.ibatis.cache.CacheException: Invalid base cache implementation (class org.apache.ibatis.cache.decorators.LruCache). Base cache implementations must have a constructor that takes a String id as a parameter. Cause: java.lang.NoSuchMethodException: org.apache.ibatis.cache.decorators.LruCache.(java.lang.String) - at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:798) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:237) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1355) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1192) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:975) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:959) ~[spring-context-6.1.4.jar!/:6.1.4] - at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:624) ~[spring-context-6.1.4.jar!/:6.1.4] - at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.3.jar!/:3.2.3] - at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.3.jar!/:3.2.3] - at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.3.jar!/:3.2.3] - at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.3.jar!/:3.2.3] - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.3.jar!/:3.2.3] - at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.3.jar!/:3.2.3] - at com.example.scaffold.SpringbootScaffoldApplication.main(SpringbootScaffoldApplication.java:9) ~[!/:1.0.0] - at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na] - at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na] - at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:91) ~[springboot-scaffold-1.0.0.jar:1.0.0] - at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:53) ~[springboot-scaffold-1.0.0.jar:1.0.0] - at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:58) ~[springboot-scaffold-1.0.0.jar:1.0.0] -Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userMapper' defined in URL [jar:nested:/home/llm/Projects/springboot-scaffold/target/springboot-scaffold-1.0.0.jar/!BOOT-INF/classes/!/com/example/scaffold/mapper/UserMapper.class]: org.apache.ibatis.cache.CacheException: Invalid base cache implementation (class org.apache.ibatis.cache.decorators.LruCache). Base cache implementations must have a constructor that takes a String id as a parameter. Cause: java.lang.NoSuchMethodException: org.apache.ibatis.cache.decorators.LruCache.(java.lang.String) - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:600) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:907) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:785) ~[spring-beans-6.1.4.jar!/:6.1.4] - ... 24 common frames omitted -Caused by: java.lang.IllegalArgumentException: org.apache.ibatis.cache.CacheException: Invalid base cache implementation (class org.apache.ibatis.cache.decorators.LruCache). Base cache implementations must have a constructor that takes a String id as a parameter. Cause: java.lang.NoSuchMethodException: org.apache.ibatis.cache.decorators.LruCache.(java.lang.String) - at org.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:83) ~[mybatis-spring-3.0.3.jar!/:3.0.3] - at org.springframework.dao.support.DaoSupport.afterPropertiesSet(DaoSupport.java:44) ~[spring-tx-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1833) ~[spring-beans-6.1.4.jar!/:6.1.4] - at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) ~[spring-beans-6.1.4.jar!/:6.1.4] - ... 35 common frames omitted -Caused by: org.apache.ibatis.cache.CacheException: Invalid base cache implementation (class org.apache.ibatis.cache.decorators.LruCache). Base cache implementations must have a constructor that takes a String id as a parameter. Cause: java.lang.NoSuchMethodException: org.apache.ibatis.cache.decorators.LruCache.(java.lang.String) - at org.apache.ibatis.mapping.CacheBuilder.getBaseCacheConstructor(CacheBuilder.java:195) ~[mybatis-3.5.14.jar!/:3.5.14] - at org.apache.ibatis.mapping.CacheBuilder.newBaseCacheInstance(CacheBuilder.java:183) ~[mybatis-3.5.14.jar!/:3.5.14] - at org.apache.ibatis.mapping.CacheBuilder.build(CacheBuilder.java:94) ~[mybatis-3.5.14.jar!/:3.5.14] - at org.apache.ibatis.builder.MapperBuilderAssistant.useNewCache(MapperBuilderAssistant.java:128) ~[mybatis-3.5.14.jar!/:3.5.14] - at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.parseCache(MapperAnnotationBuilder.java:191) ~[mybatis-3.5.14.jar!/:3.5.14] - at org.apache.ibatis.builder.annotation.MapperAnnotationBuilder.parse(MapperAnnotationBuilder.java:121) ~[mybatis-3.5.14.jar!/:3.5.14] - at org.apache.ibatis.binding.MapperRegistry.addMapper(MapperRegistry.java:72) ~[mybatis-3.5.14.jar!/:3.5.14] - at org.apache.ibatis.session.Configuration.addMapper(Configuration.java:895) ~[mybatis-3.5.14.jar!/:3.5.14] - at org.mybatis.spring.mapper.MapperFactoryBean.checkDaoConfig(MapperFactoryBean.java:80) ~[mybatis-spring-3.0.3.jar!/:3.0.3] - ... 38 common frames omitted -Caused by: java.lang.NoSuchMethodException: org.apache.ibatis.cache.decorators.LruCache.(java.lang.String) - at java.base/java.lang.Class.getConstructor0(Class.java:3763) ~[na:na] - at java.base/java.lang.Class.getConstructor(Class.java:2444) ~[na:na] - at org.apache.ibatis.mapping.CacheBuilder.getBaseCacheConstructor(CacheBuilder.java:193) ~[mybatis-3.5.14.jar!/:3.5.14] - ... 46 common frames omitted - +2026-03-07T08:58:00.775Z WARN 1395465 --- [springboot-scaffold] [ main] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning +2026-03-07T08:58:01.509Z INFO 1395465 --- [springboot-scaffold] [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html] +2026-03-07T08:58:10.592Z INFO 1395465 --- [springboot-scaffold] [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 1 endpoint(s) beneath base path '/actuator' +2026-03-07T08:58:11.582Z INFO 1395465 --- [springboot-scaffold] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8082 (http) with context path '' +2026-03-07T08:58:11.689Z INFO 1395465 --- [springboot-scaffold] [ main] c.e.s.SpringbootScaffoldApplication : Started SpringbootScaffoldApplication in 49.545 seconds (process running for 52.6) +2026-03-07T08:58:55.808Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' +2026-03-07T08:58:55.810Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet' +2026-03-07T08:58:55.824Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 8 ms +2026-03-07T08:58:56.276Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: RootController.index() 参数: [] +2026-03-07T08:58:56.277Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: RootController.index() 耗时: 1ms +2026-03-07T09:04:54.453Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: RootController.index() 参数: [] +2026-03-07T09:04:54.454Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: RootController.index() 耗时: 1ms +2026-03-07T09:04:54.926Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +2026-03-07T09:04:54.927Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:04:54.927Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +2026-03-07T09:04:54.932Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:04:54.936Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +Creating a new SqlSession +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7edf21ef] was not registered for synchronization because synchronization is not active +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7e00c432] was not registered for synchronization because synchronization is not active +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@40942315] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.0 +JDBC Connection [HikariProxyConnection@1678050146 wrapping conn1: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +JDBC Connection [HikariProxyConnection@990931398 wrapping conn2: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +JDBC Connection [HikariProxyConnection@130499610 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Preparing: SELECT COUNT(*) FROM users +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +==> Parameters: +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7e00c432] +<== Columns: COUNT(*) +<== Row: 0 +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7edf21ef] +2026-03-07T09:04:55.109Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 183ms +2026-03-07T09:04:55.106Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:04:55.110Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:04:55.110Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 183ms +<== Total: 1 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@40942315] +2026-03-07T09:04:55.136Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:04:55.136Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:04:55.136Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 204ms +2026-03-07T09:05:06.090Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7377beec] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@978555190 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +2026-03-07T09:05:06.093Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:05:06.093Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@90950fc] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@428815786 wrapping conn1: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +2026-03-07T09:05:06.089Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:05:06.094Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@440b2f50] was not registered for synchronization because synchronization is not active +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7377beec] +2026-03-07T09:05:06.096Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 6ms +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@90950fc] +2026-03-07T09:05:06.100Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:05:06.100Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:05:06.100Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 7ms +As you are using functionality that deserializes object streams, it is recommended to define the JEP-290 serial filter. Please refer to https://docs.oracle.com/pls/topic/lookup?ctx=javase15&id=GUID-8296D8E8-2B93-4B9A-856E-0A65AF9B8C66 +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.5 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@440b2f50] +2026-03-07T09:05:06.117Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:05:06.118Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:05:06.118Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 29ms +2026-03-07T09:05:36.083Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:05:36.083Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@34150731] was not registered for synchronization because synchronization is not active +2026-03-07T09:05:36.084Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@50a60d1e] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@770987400 wrapping conn2: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +JDBC Connection [HikariProxyConnection@1647938239 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@34150731] +2026-03-07T09:05:36.086Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:05:36.082Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-8] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@50a60d1e] +2026-03-07T09:05:36.087Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 3ms +2026-03-07T09:05:36.087Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-8] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@736d353] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.6666666666666666 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@736d353] +2026-03-07T09:05:36.093Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-8] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:05:36.093Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-8] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:05:36.093Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-8] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 11ms +2026-03-07T09:05:36.086Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:05:36.094Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 11ms +2026-03-07T09:06:06.078Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:06:06.078Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +2026-03-07T09:06:06.080Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@43ee2751] was not registered for synchronization because synchronization is not active +2026-03-07T09:06:06.077Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:06:06.081Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@40db3c0a] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@1204923380 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@43ee2751] +2026-03-07T09:06:06.082Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 2ms +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@17dc9322] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@565369255 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@17dc9322] +2026-03-07T09:06:06.084Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:06:06.084Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.75 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@40db3c0a] +2026-03-07T09:06:06.086Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:06:06.087Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:06:06.087Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 10ms +2026-03-07T09:06:06.084Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 6ms +2026-03-07T09:06:36.080Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@17588e60] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@1674264023 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@17588e60] +2026-03-07T09:06:36.082Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:06:36.085Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4cd52d5e] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@1429246749 wrapping conn2: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4cd52d5e] +2026-03-07T09:06:36.086Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:06:36.077Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:06:36.086Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@79bd0b9e] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.8 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@79bd0b9e] +2026-03-07T09:06:36.085Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 5ms +2026-03-07T09:06:36.087Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:06:36.093Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:06:36.093Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 16ms +2026-03-07T09:06:36.086Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:06:36.095Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 17ms +2026-03-07T09:06:41.293Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:06:41.293Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1a0b0f13] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@462297636 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1a0b0f13] +2026-03-07T09:06:41.296Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2d32d6a] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@25026644 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2d32d6a] +2026-03-07T09:06:41.301Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 5ms +2026-03-07T09:06:41.294Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:06:41.301Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6b43759c] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.8333333333333334 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6b43759c] +2026-03-07T09:06:41.302Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:06:41.302Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:06:41.299Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:06:41.306Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:06:41.306Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 13ms +2026-03-07T09:06:41.309Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 15ms +2026-03-07T09:08:41.365Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:08:41.365Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f9384ac] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@250235960 wrapping conn2: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +2026-03-07T09:08:41.369Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:08:41.365Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@35e2cef0] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.8571428571428571 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@35e2cef0] +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5f9384ac] +2026-03-07T09:08:41.371Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 6ms +2026-03-07T09:08:41.369Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2412cfb] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@945724641 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2412cfb] +2026-03-07T09:08:41.371Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:08:41.378Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:08:41.378Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 13ms +2026-03-07T09:08:41.382Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:08:41.383Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:08:41.383Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 14ms +2026-03-07T09:09:11.381Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:09:11.389Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@339b8b85] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@2044663817 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +2026-03-07T09:09:11.385Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-9] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:09:11.393Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-9] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@e836b18] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.875 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@e836b18] +2026-03-07T09:09:11.378Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@25bb0795] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@1706570017 wrapping conn1: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@339b8b85] +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@25bb0795] +2026-03-07T09:09:11.401Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 23ms +2026-03-07T09:09:11.398Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:09:11.403Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:09:11.404Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 23ms +2026-03-07T09:09:11.407Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-9] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:09:11.407Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-9] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:09:11.407Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-9] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 22ms +2026-03-07T09:09:57.591Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:09:57.591Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@76aff600] was not registered for synchronization because synchronization is not active +2026-03-07T09:09:57.592Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:09:57.592Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@62fcd225] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@216920430 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +2026-03-07T09:09:57.593Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1b9672e8] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@103531179 wrapping conn1: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.8888888888888888 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@76aff600] +2026-03-07T09:09:57.599Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:09:57.599Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:09:57.599Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 8ms +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@62fcd225] +2026-03-07T09:09:57.600Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:09:57.600Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:09:57.600Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 8ms +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1b9672e8] +2026-03-07T09:09:57.603Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 10ms +2026-03-07T09:10:15.699Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:10:15.699Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +2026-03-07T09:10:15.700Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4ee6ebd7] was not registered for synchronization because synchronization is not active +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6f7c93a3] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.9 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6f7c93a3] +2026-03-07T09:10:15.702Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:10:15.702Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:10:15.702Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 3ms +JDBC Connection [HikariProxyConnection@995189036 wrapping conn2: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4ee6ebd7] +2026-03-07T09:10:15.704Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 4ms +2026-03-07T09:10:15.720Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:10:15.724Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@619fee3f] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@1251411904 wrapping conn1: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@619fee3f] +2026-03-07T09:10:15.734Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:10:15.738Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:10:15.738Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 18ms +2026-03-07T09:10:45.697Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@41732ca4] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@1767511888 wrapping conn1: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@41732ca4] +2026-03-07T09:10:45.698Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 7ms +2026-03-07T09:10:45.694Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:10:45.699Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@16edaf1a] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.9090909090909091 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@16edaf1a] +2026-03-07T09:10:45.700Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:10:45.700Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:10:45.695Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:10:45.702Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@634584d5] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@1658574820 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@634584d5] +2026-03-07T09:10:45.705Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 6ms +2026-03-07T09:10:45.703Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:10:45.709Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:10:45.710Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 15ms +2026-03-07T09:11:15.696Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:11:15.698Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@78a4240e] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@611531950 wrapping conn2: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +2026-03-07T09:11:15.694Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:11:15.699Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2709c912] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.9166666666666666 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2709c912] +2026-03-07T09:11:15.700Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:11:15.700Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:11:15.700Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 6ms +2026-03-07T09:11:15.700Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4900755b] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@985053914 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4900755b] +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@78a4240e] +2026-03-07T09:11:15.704Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 6ms +2026-03-07T09:11:15.708Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:11:15.708Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:11:15.708Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 12ms +2026-03-07T09:11:20.259Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.list() 参数: [] +2026-03-07T09:11:20.260Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.findAll() +2026-03-07T09:11:20.260Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.e.s.service.impl.UserServiceImpl : 📊 [UserService] 查询所有用户 +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@75988cd9] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.8461538461538461 +JDBC Connection [HikariProxyConnection@1859934865 wrapping conn1: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM users ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@75988cd9] +2026-03-07T09:11:20.265Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.findAll() => ArrayList +2026-03-07T09:11:20.265Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.findAll() +2026-03-07T09:11:20.265Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.list() 耗时: 6ms +2026-03-07T09:13:39.723Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:13:39.723Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@66b24c60] was not registered for synchronization because synchronization is not active +2026-03-07T09:13:39.720Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-9] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@abcee10] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@1337876771 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@abcee10] +2026-03-07T09:13:39.726Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:13:39.726Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@dfe33ca] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@101992541 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.8571428571428571 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@66b24c60] +2026-03-07T09:13:39.728Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:13:39.728Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:13:39.728Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 6ms +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@dfe33ca] +2026-03-07T09:13:39.728Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:13:39.728Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:13:39.728Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 6ms +2026-03-07T09:13:39.724Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-9] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 4ms +2026-03-07T09:13:46.169Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.list() 参数: [] +2026-03-07T09:13:46.169Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.findAll() +2026-03-07T09:13:46.169Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.e.s.service.impl.UserServiceImpl : 📊 [UserService] 查询所有用户 +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5d32c3a4] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.8666666666666667 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5d32c3a4] +2026-03-07T09:13:46.171Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.findAll() => ArrayList +2026-03-07T09:13:46.171Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.findAll() +2026-03-07T09:13:46.171Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.list() 耗时: 2ms +2026-03-07T09:13:50.492Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:13:50.506Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-8] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:13:50.506Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-8] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@53c286a4] was not registered for synchronization because synchronization is not active +2026-03-07T09:13:50.510Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@47d7de43] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@927509680 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@47d7de43] +2026-03-07T09:13:50.512Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:13:50.513Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@31bcbe4a] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@201598228 wrapping conn1: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.875 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@53c286a4] +2026-03-07T09:13:50.517Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-8] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:13:50.520Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:13:50.521Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 29ms +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@31bcbe4a] +2026-03-07T09:13:50.524Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 11ms +2026-03-07T09:13:50.517Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-8] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:13:50.532Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-8] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 26ms +2026-03-07T09:13:58.593Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-9] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6b758231] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@2126245868 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6b758231] +2026-03-07T09:13:58.595Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:13:58.600Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@31c79940] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.8823529411764706 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@31c79940] +2026-03-07T09:13:58.601Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:13:58.601Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:13:58.593Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:13:58.602Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4cf45f69] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@1134251079 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +2026-03-07T09:13:58.600Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-9] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 7ms +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4cf45f69] +2026-03-07T09:13:58.608Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 13ms +2026-03-07T09:13:58.606Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:13:58.611Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:13:58.611Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 18ms +2026-03-07T09:14:28.582Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:14:28.582Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +2026-03-07T09:14:28.582Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@54ca2e3c] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@1838371682 wrapping conn1: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@54ca2e3c] +2026-03-07T09:14:28.583Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:14:28.584Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3de435fb] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.8888888888888888 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3de435fb] +2026-03-07T09:14:28.584Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2770fa1] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@859350386 wrapping conn1: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2770fa1] +2026-03-07T09:14:28.583Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 1ms +2026-03-07T09:14:28.589Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:14:28.590Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 7ms +2026-03-07T09:14:28.587Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:14:28.591Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:14:28.591Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 9ms +2026-03-07T09:14:58.931Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:14:58.932Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +2026-03-07T09:14:58.936Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:14:58.936Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4ff48ae6] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@908619933 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +2026-03-07T09:14:58.938Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3989ee74] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.8947368421052632 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3989ee74] +2026-03-07T09:14:58.940Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:14:58.940Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:14:58.940Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 9ms +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@4ff48ae6] +2026-03-07T09:14:58.944Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:14:58.944Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:14:58.944Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 8ms +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3fbc7956] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@721325685 wrapping conn1: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3fbc7956] +2026-03-07T09:14:58.948Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 10ms +2026-03-07T09:15:28.926Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:15:28.926Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5021275e] was not registered for synchronization because synchronization is not active +2026-03-07T09:15:28.928Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:15:28.929Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3f87579d] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@469087888 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +2026-03-07T09:15:28.929Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5e8dc242] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.9 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5e8dc242] +2026-03-07T09:15:28.930Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:15:28.930Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:15:28.930Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 8ms +JDBC Connection [HikariProxyConnection@1372181421 wrapping conn1: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5021275e] +2026-03-07T09:15:28.934Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:15:28.934Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:15:28.934Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 8ms +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3f87579d] +2026-03-07T09:15:28.938Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-3] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 9ms +2026-03-07T09:15:58.931Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:15:58.936Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@10ce968c] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@1714135762 wrapping conn1: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +2026-03-07T09:15:58.932Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@42485dce] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@2065854273 wrapping conn2: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +2026-03-07T09:15:58.934Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:15:58.939Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@447777c4] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.9047619047619048 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@447777c4] +2026-03-07T09:15:58.940Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:15:58.940Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@10ce968c] +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@42485dce] +2026-03-07T09:15:58.944Z INFO 1395465 --- [springboot-scaffold] [io-8082-exec-10] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 10ms +2026-03-07T09:15:58.944Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:15:58.945Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:15:58.944Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 12ms +2026-03-07T09:15:58.947Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-6] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 16ms +2026-03-07T09:16:28.924Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2ed3de82] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@349902318 wrapping conn1: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@2ed3de82] +2026-03-07T09:16:28.928Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-4] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 4ms +2026-03-07T09:16:28.926Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-9] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:16:28.930Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-9] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@89ed8c5] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@736052548 wrapping conn0: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@89ed8c5] +2026-03-07T09:16:28.927Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +2026-03-07T09:16:28.932Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@66047844] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.9090909090909091 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@66047844] +2026-03-07T09:16:28.933Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:16:28.933Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:16:28.933Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-2] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 6ms +2026-03-07T09:16:28.931Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-9] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:16:28.937Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-9] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:16:28.937Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-9] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 11ms +2026-03-07T09:16:58.931Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listOrders() 参数: [] +2026-03-07T09:16:58.931Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: OrderService.findAll() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@79f75a00] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@692524477 wrapping conn1: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +2026-03-07T09:16:58.932Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: UserController.count() 参数: [] +==> Preparing: SELECT * FROM orders ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@79f75a00] +2026-03-07T09:16:58.933Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: OrderService.findAll() => ArrayList +2026-03-07T09:16:58.934Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 开始: ProductOrderController.listProducts() 参数: [] +2026-03-07T09:16:58.937Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: OrderService.findAll() +2026-03-07T09:16:58.937Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-1] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listOrders() 耗时: 6ms +Creating a new SqlSession +2026-03-07T09:16:58.938Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔹 [AOP @Before] 即将执行: UserServiceImpl.count() +Creating a new SqlSession +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@140850d4] was not registered for synchronization because synchronization is not active +Cache Hit Ratio [com.example.scaffold.mapper.UserMapper]: 0.9130434782608695 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@140850d4] +2026-03-07T09:16:58.939Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : ✅ [AOP @AfterReturning] 方法返回: UserServiceImpl.count() => Long +2026-03-07T09:16:58.939Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔸 [AOP @After] 执行完成: UserServiceImpl.count() +2026-03-07T09:16:58.939Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-5] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: UserController.count() 耗时: 7ms +SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@75cdad47] was not registered for synchronization because synchronization is not active +JDBC Connection [HikariProxyConnection@411658786 wrapping conn2: url=jdbc:h2:file:~/h2/springboot_scaffold user=SA] will not be managed by Spring +==> Preparing: SELECT * FROM products ORDER BY created_at DESC +==> Parameters: +<== Total: 0 +Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@75cdad47] +2026-03-07T09:16:58.940Z INFO 1395465 --- [springboot-scaffold] [nio-8082-exec-7] c.example.scaffold.aop.LearningAspect : 🔄 [AOP @Around] 完成: ProductOrderController.listProducts() 耗时: 6ms diff --git a/src/main/java/com/example/scaffold/controller/RootController.java b/src/main/java/com/example/scaffold/controller/RootController.java index bec2d6f..98f7324 100644 --- a/src/main/java/com/example/scaffold/controller/RootController.java +++ b/src/main/java/com/example/scaffold/controller/RootController.java @@ -1,13 +1,39 @@ package com.example.scaffold.controller; +import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.ResponseBody; -@RestController +import java.util.Map; + +@Controller public class RootController { @GetMapping("/") - public String root() { - return "Spring Boot Scaffold is running!"; + public String index() { + return "forward:/index.html"; + } + + @GetMapping("/api/status") + @ResponseBody + public Map status() { + return Map.of( + "message", "Spring Boot 学习脚手架运行中", + "pages", Map.of( + "首页", "/index.html", + "IoC学习", "/ioc.html", + "AOP学习", "/aop.html", + "MyBatis学习", "/mybatis.html", + "事务学习", "/transaction.html", + "用户管理", "/users.html", + "API测试", "/api.html" + ), + "apis", Map.of( + "用户API", "/api/users", + "产品API", "/api/products", + "订单API", "/api/orders", + "学习API", "/api/learning" + ) + ); } } diff --git a/src/main/java/com/example/scaffold/learning/IocLearningController.java b/src/main/java/com/example/scaffold/learning/IocLearningController.java index 345acd5..553b398 100644 --- a/src/main/java/com/example/scaffold/learning/IocLearningController.java +++ b/src/main/java/com/example/scaffold/learning/IocLearningController.java @@ -32,9 +32,8 @@ public class IocLearningController { private final PerformanceAspect performanceAspect; // 演示字段注入(不推荐,但可以用) - @Autowired - @Qualifier("learningBean") - private LearningBean learningBean; + // 注意:session scope 的 bean 需要在 web 上下文中使用 + // 这里仅作演示,实际使用时通过方法参数获取 /** * 查看所有 Bean @@ -100,7 +99,7 @@ public class IocLearningController { "prototype", "原型 - 每次请求都创建新实例", "request", "请求 - 每个 HTTP 请求一个实例", "session", "会话 - 每个 HTTP 会话一个实例", - "demo", learningBean.getInstanceInfo() + "tip", "session scope 需要在 web 请求上下文中使用" ); } diff --git a/src/main/java/com/example/scaffold/mapper/UserMapper.java b/src/main/java/com/example/scaffold/mapper/UserMapper.java index 49d3cfa..b319235 100644 --- a/src/main/java/com/example/scaffold/mapper/UserMapper.java +++ b/src/main/java/com/example/scaffold/mapper/UserMapper.java @@ -2,7 +2,7 @@ package com.example.scaffold.mapper; import com.example.scaffold.entity.User; import org.apache.ibatis.annotations.*; -import org.apache.ibatis.cache.decorators.LruCache; +import org.apache.ibatis.cache.impl.PerpetualCache; import java.util.List; @@ -17,7 +17,7 @@ import java.util.List; * 5. @CacheNamespace - 二级缓存 */ @Mapper -@CacheNamespace(implementation = LruCache.class, size = 1024) +@CacheNamespace public interface UserMapper { /** diff --git a/target/classes/com/example/scaffold/controller/RootController.class b/target/classes/com/example/scaffold/controller/RootController.class index 7737341165d25d7a4548705ca0c02f54d13fb7dc..ec78c2d6eeb552d02006d7f7a2b72b398e6370a2 100644 GIT binary patch literal 2009 zcmd^AOLH4V5dOxpt&J=@@z?~yD^3VtC&UvV#9%olwjsemj*S(}BRpy(jg$?movqzf z93MDPMNxo5RjNWbaG(%}z$F0=A&w7l=Xdy_{0WMl)yj5U9NHGy%2pQT(Y}XD)84~>ia~3Ryo|5+G zrC%Htwp&z}2G55T$3luBSy4eC%gREU;XuywZMWPvu65YAdgJ=aop0+Of4%nE;@UUA z)PK8DuU%eQx?!P1Csexqk*a_!b){l{w-4n}%BJ0j@7Q#hQ& zU>X8PNJf+W%C~^;*G8?z&>teMK62S-|>Nmez{o-1LpvLZq5ZW(N{Vbdy zf1?2+|9F$ZQPOv*p-uT-GPQe|q4u9E)ArOEwWo~QR~SD0SJiG;lEi6-!Gf*`bxBq{ zM~R>yOC{|TMM1lvuN_DEVwR@G#D+;#pU_3curq7B>P)qgSN>UtUH>4xzLO-a_^a~x}jZBb9P`;xG~q&A&n00QnaI4 z?UzLmO}mmWD{5Z*ABcIC7kMHTasw+)sgQo+UW2mjqI9Zs5hiHt1;kb*uI^^|joznj z%-Lm^+&+Paw);o6OodqOmYv27&y3Oy8cp7ebL?+xo>hTI*Hq)WxIi?ioUZx>b<#F9 z=()FAgJxtg9QsS{AXL86;ew~cW_>f*he`SeGM@yf3TUVGRk8#<89mz$-Uj=bURsc) z)wqEarf5w!062qbvKVIY8llYL!(YgoIlA2mT-ta&7bAZ@ge>K z&+y~?MLxEKi6xxeRKn3pti9Ne-5A1N4AcAOg+^mlZ$`@Bf>Fom4x8%U#<|G%PPD!o KAxvW41O5anR7#Qn delta 260 zcmcb~-@?ju>ff$?3=9mm43ZPMOw<*E3yL!H(iNQY^Gg(hlM~a@@^exYGK&?8O7rr7 z5{m2$T#O8QlOM9^OaoYW#~ z21N!=1}2~t3_y~Rft7&`NODh}&n8yS0~7=C7#P?Yc!4Ajn9a(-$G{KdF)|1+2muo#ROCe)5?vcl^Lp42q?=3)F2GRBGC+t#SEfAJz`*;;tU{JkhRPb G3=9CT$tE%Y diff --git a/target/classes/com/example/scaffold/learning/IocLearningController$LearningBean.class b/target/classes/com/example/scaffold/learning/IocLearningController$LearningBean.class index c4dbc5cbd72c505778992d6a1ff9a127a40476af..1939eb55d95b0d6d66b91585ae448b3f5964dee9 100644 GIT binary patch delta 55 zcmdlaxJht>9y{j*1{Q{i3?dAZCY!Unvrc2+XP7?uHoNrXdF&Rfvw^%hKwbvxd9y{km1{Q`%3?dAZC!4dovrcE=XP7bhHoNrXdF&RfbAY_LKwbvx0tPOI Jg_AuvvH+zy4`l!V diff --git a/target/classes/com/example/scaffold/learning/IocLearningController.class b/target/classes/com/example/scaffold/learning/IocLearningController.class index 561b785ff54e1b9b1b08b6978dde3f2dc13056e8..862f12360985ea2bd0ce7f858e1e3640be5cef0a 100644 GIT binary patch delta 2275 zcmaJ?32;+Y6g@Xd^ON*9Nk46&wA8SPq%CU&0g)0`p%oQW7PnX;c4(WDq<}a~(QyWs z(HZy*BMifU$|5R@&{8(R1#!U*_YGXirYPdRAoaYTP{C~`dH??R?!D*S<=wv^w7%5y z@|o>V0~jpfO`e19vGzn|tqUs!CGki+UKy?IN zJ+kSp=BE3ao9;idcz$!!lg+z!A6>LI9r<`fM+}b&_L>XQ8q7ToZK2!kal?kyI@VyV zd2jj%?>aoL;Rzj2V!a?}u1pV_PQ9~pqmE5@%Iv9^I=AR(K%-fw_a3kgO**#05O`vd zcqB1C5l+Ni*dcJnDb`WmC9p-OyRciJRg-skTEvBC%tLy<^EpN5c~def()Zy-4KL|< z8Lybpj9B`scum9WI^MvW=825b;(d5W$GdoiK#6D~Ts16OSCeqzeL-4<5T`em6PWYx(d&nro>|utHZO)Ez2); ze5EWk?o6nxCi$-gj=Fdx=D|sPtKpQ6@640lE}ef6xT+%ISWRWkG#7rN$@oZYW@SZ0 zDgL74SNvx7^9A#8no$gk)+A!ls;WrLg)^jD9T;D_z4?K*Y2uyWk!$2yO|H{1M<$vp+Pzhfo`khZFVM?U8Bj=?++Z%q z4a!aC&fLBoY%q`pCp+3u-NvUIf)=cYU0`-^KfPYK7lemvA=hH+^*{hUQG{OTjXvmy zz8J*!p(w#b^b;F31F&A{tfCQkY_Fj_QmF)BCr_0}B~XF7LmqDuy!UWll_ zZwkB;7eB>JAyHE5m^Z_s)C0<32-i~h5kd}z^D>PhA3vA5ZVA_Zx;APuMnjKYOl);q=yskh)&gA%_WRcse>q#OHEsN_ATLvsk1 zJiDm%?0*1U<^*G9t<8(rqowE&jc3h_dNES0Wh2oqW33S6u z&YW4CJhOT6Z|60ig9*3;leu4kxmJ+sx|5_;PYRTJsS9mMKIvW0gz3EH&C-Y6&<%t6 zx#`0zr7kx|)M<2alsXtUM|CRh8MIL5eS^k{Mtrjr-GavVmQWBher&|gOOYKkezycY zX#7E82{Z?jV1I&U$tb*51NTC9y){02ol|noEE0spzzKV?y_6q4DWR!NF19YBL8%`# z`nNX0B{G2LY%>`smr}|nOd0=!Wr&1iJokrL?;~WCjFCyy-~{8xcb&AE47UuV!zp}T KFE`4~$o&)iXQ=o9 delta 2439 zcmaJ?X>c3m8Gc?#)=I0@k#%I_#BrSjC$((i7;-?|P+2C2!6uCTME)T zK%l6d>5uY<8L|umnNFraQ?78hNt}an^lm9l3*l&on_f^_3N81M^!Zkb;{atO?Y`gp zy~p#Ox+i^IMt|hU!3O~>mrKU==fiUX{q|@s3?FVba0_k~7$dfo&kkh=Gq#l#WV+m& zlj&HSj-B|ShT9C>jqR)2KHdDAVqu0ZPBD#jLZ%0Gq4{A+}k7R;Qa=Ej0fD;BduqQ;~@hN!xZRw zyI?y#j^z|W_^BXBcg`5;p9_4s;Shc)&_?Y-!5Xwf__e#is0}}&F#J}q(Y>ys(|tIg zZ3~B!Ixx|5|ZB76L?a?QwE;K9|iN=*62L<+GzDDhw!X{=ai)G zPBqzqpS_8;gGAxN@Vl?xkt z<3U-a!zZf^`4WZ`7!Juff@!K3>*>FKfQj#4Rxb(Z7R;woLuKRnR9d5y)*7-@PEW{J z+_9>j*g9R-%lVpIV8{m9xcjN93W;5)%U9)Vnta{BR=LQ1wfgXEqw9ozk96D4CAogD zmOK|L1o)XL9kSb{}pngZO38Zo`RtXL#QD~- zmRXnvq3&uirIIeElW$CNlH^p8cBbtbfL?GwTO9$AT6~ri#bT3P3q(egxUo|>SZ>0 zz=kqtQUp7Po{vE-$hIce%G}?)HBv1eMdz3++sAGJN^s%eV zQNpAjW`mc;AmIS(z4WMh z0MkneC>w4145Q7ob4tk$<=3#jN^h1qVs10D=Jn>B4)sSK=pk%!tT@yE;YtDT_sg~A&5 zHipk@wy=-v1R05huC^ClD_5@|O0YnG^B(+e0*9yLPoo*q&yWsZzXS2v<-_Q02!xkb zq?*jLzFbroq39ip5eOrGaQg5~p&LwoWPfVs8P#!w`hO#h>Q?lPssIPtNq_(j@g| zj&*vn4caBcd(~(=rGr#0)78V@S+Y_(rI&JNd*?1WcaEGV7gJ;g1KvqP7FYivjLRm3 KrB7_(c>WIt2*x=8 diff --git a/target/classes/com/example/scaffold/mapper/UserMapper.class b/target/classes/com/example/scaffold/mapper/UserMapper.class index 18d1c09cb53a96db0131053e70e970b0751e5f0c..edee29084c8a76d038eba6f5f1029906230182aa 100644 GIT binary patch delta 36 rcmX>i^j47T)W2Q(7#J9A8B8~F>9TKbVPDP2&BegPU9YGWGVo>Q7UZPnrskC-mSpDVF*4}-qQsK?qGElYqEcs&m^C8)HI zBqPQD^RB-C-}l?&@p}54&pqSb>)xAt?tMQJ&z1Noo{P~?2cuvmqoJW8W72fBCY`4D zlBf7RS}4;L4)=-hAuskJxV|JXYm(l)BpigFEVYCu1V&9#O)cRFfkBhhT~ClBbu|*G z>0xJdWMnjCWa#4U4QM*5j=)Hu*CdhZ2->jCSRKIte#+Dnbl_)rJwXqCqJ3z=zR*TT z|Jf&Q^I90ACOv2%9R7WkaDk)zgk6+q?@Z`QG@>hmerh+O9WiK@k{St~v@oFPCY;&= z1OH*daa!1S)d@@vw`~)~I7_#W6W&q7g+FEpSu|)sGS|T5N{7A^rpaN|=Z0u$bA_Nv z2P+*RV3bra(4xV*$kELx<)*{R;3yMv(U61zN%TS57{T@1SV(3h2K}OX!c*6zeCHXlO*Auw?UKGn99bn{l2ERjQg7 zvWT-?Qudx*@A8tZXd#4Who;`4cB%fgIsfCu^k((wx6LUzx)G22q%^V!a@HJ?M&|IA zeUA@#`U;0dR5qr;ieS3Mz-fdzJzU7{<;ZAklX+0d>#9(!}H@>BetJkJi zyZNkRvDn_6&S&Q8DH(d7T&#Q!%oWYtaclo@qn|$QAs-#(PI8Ll^bw+azb-XXHsz!=&Z#flt*ghlV>O~_$L*Dq**By-`xn!MYrx`ohID2;6^Bu4h zVAysdvuXI+_M{wZC)?n6Wb~0YMFJnyp}$fsOz2+F7K92${3^P3l)4ou4{an>wVnVRi5{z zj|Q(*yh<`Zs^9sw{)d)@iK%XbOz_dRfa|-$zX|T%U3R1)p)8sr@3?ELkULSH!tXkJ zs$|;a*D}|WTrZ_ftuNj64^`l%l)O$)U#-|l_kg{SP-fQP)&AwXK09Ij=6G(|T(^;s z&>&Bx#?*dNzro(mZ0)456Y(+^AF73tZ83d&A%c+k%Pr)9a}v$9R{OjCCNBlU(;QpR z?dTDH(IEO>^e%&tyPAvUOTBs-F5*ByA)hqQ)!@Qt=M!^|oozEg5AHA-+8v!3Hm&3> zUChWE7u&ISL-vhT5k`{SNU5J}gir>d}dt zMWw1buWpWM2Q(IBJe?|`RbNb4K6+QxNGjGP{|1-V7XoGAD=gC6s)Q>1fN1|m$^K}w zs)m#AT>C#bm5b5J=cW3lm`qrn(^42Y_2oh!ovu>KRFZtu#k0EEeaqD6`a>U1U$x00 z1)i;%=AvBr`d-KT?dz)1TVql4dfvprAg`vm&UAx-dE(6K=t@9|&*V^1wr4MUZH@&0 z zCKW3yag|ZekFaokQL^Iy5*A_-S?N06)2Y_Aq#Yvl*urD@Th8@E75)5a8!4K$M5U5o z(#7ip=^wnJJQhxGdt9Ei_P-J1>FN)#YA>Ey^mUfAis&2dXiA;CnH8#@v>Zw}v@ub8 zE^WI?O;)yNU3!WpKcfLnHs8B}!3}HkCKv8>&)zdR-b`mp^5exSO1F)!j(%5)D)FBW z`>{G2#j2=%KF~Ylk!OWwnXAdv8ZYtPdB!Z;%KV89A)9HHH)kITeSc$%8@?RNEt2hM zer)t|TgH-6s5Tu_MDMR8UFN5U!RR?eHp8>s#sARjD2O-o*5GT>yqa# zwi)KcI2V@XM;2wS!{u|X^Rq)GVjoy$=su}W_SH!kuszDnS~l^0?;LM+~t zH&4A<;as|&8=dl|AxxrWz4@8dclGv%r{mr;SRE&oZoYovPW7b|B-Tr z{UN7f4l&{2LXv$8H_Mm&%%c)3kAhgFp00H}K4X8DtNz1&+&kYx?{1p+lP~>#c=Rv1 z8kz?`2hVwB)@THue<=QJap$7-tf=iRVwF#~Y;sW+9b+)VgSiqGWkH`jcFO!X`FmcP zb}t!6wpB7(q?OOB_|0^iysHTG=MBl3c*)RoW9CkIi1yJ}*_5X?Vl|A36)lXSrWXgk z4w5NnfBd$3v8L$d`OMt+zUG#C?xnYblr|hpN{$Z7j!|s&Ec6x{J$iP)sMRak2c$J+gKGipRByTs;hbQv#VWb>P5OR-QDLn9trLIY1+`GNc-N{^2qMc zDXrY>bQ9L>d`p3sr!GGEF?B9>kwY|W&mN3ueap;v!E-s;ub<|lT-f%SdDEY^B{~+@ zy?hKfoLC3*gyv6C5}jn17!&C>bZ;<3R<&N^itDmF{*!^YJCf(8ze&ld3FoG++=TLX zJEldeCW~!+Zl3?(_GrXTQPNRp&qP$5oK-;n%e1V*++F8NZkymw)1DOf6mU#mKb_}x z){LkdE7jv|vY{`<{#;CNt6qm4pT07mxku8yi^Za2i^&)TLe(4NZhR@Lyg>QDnwyksEs%PX~SsWw6>>Lz!y>9uEm;H(NSMY1~ z?H%eS0i~fSquTSUM@5#ioVn}fDSthGiBEo6CzjPT?4Fx@MsL0$x9ZhJv$| z-=$Sai$D2hl>a=r@9e^^qU7A} zfoJlXO4WqYqxvh`hQ1U@jqAuAYxv&ZxT{KhAlaEj`}Wm~cdK0%#&nWi`}%3DPiKiI z=6-W8Dq6n#%vSd5>lZIQ3LP7HOk4(^2a7GL2ea-8B^Fd$)|V({r{Rn_14}Ex=hRIN zl0wZR-5V$(C2xvERz@UW*zu}ey3Dop9O-Ai{(Z|fKlw*rv_AOiA8VgnDSl9T-O@}! zy`BES;l76s`z?>S8Pyl}neM0iCOqo0OsQucp>eGJ7QYkK>w6Lcz0c#mC?3~k?YUWI zo2G0Kap;=}@xg^3X(x7^qPY_BsLV**;qJ7f&n`0yiK9iGTUfSEb(Hg1a-CJPDkO&P zv&xpaCFPoz>K46S-y+4ixM*DO!Zzks!627=)y?s}cbML$WHya4WOu-6)VcdRGtL$*w|~QlbbyTNgRjcHw}&)i&qo=u#-7xTZNH`(}xXb*84Z- zo!QoR*s2~*n`4fA7s8zR{rFIGYx*qbFS<^#dcEUAWvv0$Z^Qk3yORuSnw(xXjW3Q0 znd)37Z#&;oWq6Ee&qlLo(K12dAvASfssgYu@9#YH)GFE0=ajT2Un-6nZ~E?Q^eH7wFyqv~g8VjtA1?HHb#4R0~ye?m5~MFJKze<3Rt!nEH6~&d$hsi=+}J0n1UI)Mo>t${Wv% zHiE66Z;$XXwl*RoQj+s9rO6(aRa07UB7P7~x90wSTSh%3-jaRQiJ83YW5}b!yPlzG_&YLeosUy5H!GfhPG&)y5iH=@vsFuBz-9Gq ze1eE$Z+P0tYn)Q7Qe=^?J6k!mzpV(~t%}dqmA@Z-t>nOM$?#j%CDg@?vjqXB>p_Q< z2VHNcal|tTUifZ7jN}R?>^5~#KhENFIkCoO&m(2;#8=Umf}T9^Q&HD=9j5rrL1h@n z&;EF&%YFMCr9se5@nA~ZnFLl}`T7V$5t01Bppfnk1?G{891niwGh}u=5&5P4TQ{gi z<2r_o6eNG8pWPj;Eh&}vu&+AB*1ajPn4e`si+f{DZf%C!M4V{XRMs=*v)ApX@v6fM z?a6Kh$wo)E>GvtQVUI0X`uA=QIP9CN-JjRw8<@ptsM&RQAx&$4uhK(P>!Y4I?Hl@E z*^?X;^NvOvJ|%tk-`Fl9mSjd>n8mlE)E3+qh}R& z-?^`Dtr6C?R;^KK^EUF#27{pvHO-~1cX+HB$jBsjkdeVVPntjPW6}Gyj{?{Ty!9)s z7sKk{%^>OOLCll*&cxK2bF(Uh_k_U(8bQ`_?l;d^nu^3#X)Odx%mg_03bv67rF=il z1P68olRo9mB|VMt(!JMGTb>gWnXBrMtUAAb=<;GM@%|TiR}KrO^eoBcUqPMoYfAWh z;fr6vD|{DBm<4X9nX28r;b*$H&-UY)w*}9oz3KIAw`Ms!l;d%izcXboa=j=v!tkmn zg8*+unzSkPLhds!M}Ha84LOXDJc;x~4&xNcAgRn>uOHJm_NahKk2~qC;&oTfb9#4W z>zz|O-_$PXDj(QMnv}y7iMf$xyxww^2Qq>UuFCARaG@Q%nO>Z+Pd7O_k#i)ry;_j8Of=q8jTzEqB$V@1e;n zy)&)vuL@S{3#ZP^IB406#I)Q#`B3Y`4Y_-I26Ta!4Tfs-i)5ZFHQKbjn22!pXnb&c zW#@*E)!Ln3u8rOPH_kO^$Lu4v6*f1zH{FUB)8-hISLf^UGe3Pvg?)S7D-+eVcjA;9 z@;bB%ZNZV4#%SJT7defUw1jC$dP>S3t#>K6Ee2SzJN&k1jG7MpD%z*M?Ny4b;tRE` zZ0l5Ze(k{iG|7Mn({Eh%^-c;xyrZl73Dglz-Ln!tIfWuoT3PkZ$0yIeBHrd2r6$eu zCh@uMiB^rasgsX%+`Lb=wDBXu^!Aoid7-{*y1@yY&T<=*{Zr}dA0l?sZDE~z7dNqG z^l;g7%Yf$xJB#(DbLNT1KPuL-*af<~-a7wC#`~>(C%?9ygN7Ry%88KWLhG) zKnyw*9L-reo00ib^vmfcmQ(GY`4VFCB3il+SM@IED-N98Kl6c0yGxn6Q8lSzr;LD( zn{an7lfKMlcd7I}8k?tzmb)cb-iCjk%s<(~=GGSUsHnt`t71NFpXE7f2^AuBd47-O zbz@5vq3e$yHcd=s-b?LmbYJS}WET1ycj0+dz^2u#lpLqckue)ZYVol(y=ude(X&4` zD~xK6-(brE2Y@Se?95i6@K?W7gN1kG5O`-TYH*1 z@{itrH3p|?-`{5vdZ`e(qGhJ}EOhA?W;!ak>(-H8J9rT>uypG7q#z@EhE6N}?_3x< zV}(uysg+hJVo7kCs1%(hI=SWV86tDy_;Ed-?HZh6yYxRk87t}#W^Fa^HLh`Y&pPbB zL!Ut_ZRd!LfaGX;h?`gJJBjI(*K_6Wj664)3C0=PhKxMSpAE~3YVON?A`1-DRDP=x z9^~qM@M;^mBn_=jYDzHf`aXC$SaW`3qp3BYOn>AZg#vR-y7W~^f9V-zDXC+l$B3ok zE{hY#1)L`N3T+Ox@2xjh`^GLFxe>R_kzvQfR$^t!5!DsJ)^y~efUS}0j<(h#aib?Y zzj>D`%H2OJR~9fkH6`_-Pvxh_ulUUG`NX`WEEAykmrLH=_P$B{pM~)%WKqo zghgY5w|PFJ;);7LrsIkCTV`PNp@K`9+nbNLd6sG^9;?4DRc*Jq`nmD@P~&*4xS~U! z88%+(mw7F9Fz5Sro$vg4C*)Yae4U}0ed#E-waIrYK~w9fQ}BTz-hC2Ek&HGDxd({} z-udc3Hn(xLp86*2JxUv?zZfgovhUe5d*wCHQ8~3*xnbWAwY?Pic_F3CYt$@?9<5#{ zy9OFO1cVzo_e~AFuvwqcu5V6!#TB_6V-z_-<70h+26uDzy}e{p-klZFb#JJu#&EqW zA?KY!`tog~b-}vz%|}B4J5N{E@3rn`Bi@&6jh+x;VRg#MNO>UQc5tb9OvJ9;s5G&% zD&vvC)B}e%3B@*N%Pm{PHm|iGVjZ=xx!GB{QLR8fEr(!^{yLQCQQ-i80rpt zxV1h0bfmYI=KUe_vuYI&KF`)<#W&iRN4+YdP?$Yow(iWL{x0uRTeM~O#(4+TagEeC zB3H*M9!Pc($a+yM54^bP{hCnq7U9;xR9-vFly= zrzdA_YsSb*(8( zw}+$or^Ct5+ttU~incB}EzKzSZ=2bjC%PX#QVGJ#BBxc42EPp zmv0y+}Sht`B}+m=}(iy&*CR8n7hly4qUN+6)_pJ%2j=7Wx=*OX60*G7{`ly z^W!UDsaKV&ag}=h&#{a5oq0aTe%rlf5^`CkuJ5*;hs*n1VT!-xIs;h-8%Vsjwy!+aRtFWK6@Vri*VTwz{$jAn%|NXp1 z&*Us)jFSLQ=^9gP9fLm-(D`92?Dt7sYs`o^?>DT@{6XiVu-+DlJ*<{=N{iWX7d_cT z76i;(tgSM$qEnvE1YBTh*Ql-^XpPfUa9;5LaXoOvX0--eV6UX9n-aG=J?r4Q>rCMJ z7r$mVmIKCLZ2tNtMOH8}%y2@$_rsR;U7OdxQ!5{Ij7>?22pgCwe0f3BW%uWvr$eV| zxWkFtr3NXbL)nw>b@YrqSMZAYF87Xr#}u+A zp|MflCBrq#DD$qh!xAedcNpO)gEw@I6v1x~qNs>eyYu;sT^-_wxiu?mqi1aT$6JqyI7=Hmzw2a6kt#X*^waRr zd|s^_AMxx|mzSlt?4yK|yjf2T@s8Cwy;~0&b`(ewWbD=Erem<}X9=Er8a{61h*|0` z#h$Axw(_?0DY};~^ZoQzjn;MDRSkv72=Y{YjT0H|@gE6H!J2ID`zKw_UsBGO;~jpT zoiS5wrtXnl*2nmzPr;$yJALiQ!Dp12o?C=vs6F(ERxFOcYB0V`3&pXzAT||>%Qdgf zLxQ$O$bI&^lF5_#yiAriLhb#BL%WN$hdXV%iihJ%3$vE?oHffcb}#aK^01G4nm4Cd zvZeE}>z*(1_D`P~4NiS5&{0n6zgO66X(yhO#cB9TpJ9FL&R_Fh?3K(>@imW5{X90J z-{1P$CA){%&vZ?v`h>%^@$XX>@i*ezCdBmeZrZ;ft_S2;Xmf4sX|ffjT69};vB@)V zUlUiqFpzFLnQdp9dna>`%XPYz^`LIIcIwspx9pwVHD*O-XJ45H?#`@y5pVo{RLecg zhtwfHWi;4+c~q>zerxd0s|!yx@+V#xW)```*acBEau6jY$jo|UsIvHkF7xMYtBHzS z^4UhD+fu+NRuG=e_U5u!S#|7+)hh8j$Bup0YVGIUtRkj^%xebgoY|Mjz0zkbTSKJ} zH2Pw^DwktVdd~!HAsHpdPB4e;SM%LMd#aAN-jxD(xi$ab%Uu0e=~bStl`twgyK4{T z+RtdG&*~=|Ei;!etxPbCxfC@)lL|sB%Mn#|^QBkNXsH>=GR1E4G>N@HMDi(DUbqf`Tibvf>C7|x0NT@{A zT~re49x54?f=Wf(h)Hv!hY63Nh`huE5 zO`~Q|v#2@LJZb^;6}5=^hFU^>M=hgPP^+jl)DP4;>L=C90cS5c|ZX;1SkSZfHI&0 z90pW@BY+y94rl;J0Zrf-pap0HI)E;q2j~L^fFWQ67y~ANDR3Mx1I&RFfCXR)SOM06 z4PXn{0Ve@_zyWXsoB(IQ1#ku20C&Ix@C3X7Z{QT*1NZ``0YBgj;18Sy0)Rju2nYtw z0q21bAQT7#h`fhM3CXaQP*HlQ8o06Kv#pd07` zUID#8AMhIJ2L^yQz#uRL3=R}z#KRMSOAuQ6<`h60JeY~a1yWw z8~{ha32+8n09U{ba0fg9PrwWC22KG!fG=;MPA32*`2z;=KK;05>qeqaY600?3)(90h-U4`DMz9_pXj8R}{ zgjdH4V^x2?z^PiG$)2){0%O5XC7&hG;`z7Hw<*zACSR1Hfv*$=Gy1+KZr31yapOnp zg)uJJ+#U_u&^a+&vOyR#M(>bu`(|N`2Tw(dN)(K+#mSeRF!ZsR|qY*?TKmRH9(`-`;nk zgDU)Ubo|ekKbaX0qvP_m2xI(zZlCYG5<6~=mZkoz@aL#$XhID(9Y+Hv80fSLV~#K= zKm!*zDku6bs0YkkMgwmcd_#j^xad^7Fm@VdM$y0@2Id{Ym?zxQdNc@NglqY~4<7Mj zooHA5F!_k*VXOl!8JPhq8JY3#+xmx$@MOFPt!2*-cfz3zeJ`yoWMo_%WMumPSt|@T zLSHAf*#Z0d_lFYZ|5;1zAg=4OEx zIt4OhJ(|+f`i{R`*X{1 zL$tUHeiuQ%=kHklYo40)^8|W8dxz_j)8GYyhtX|@`|IDQew6-m*l#xf+1kPyWB&Kn za2SJLI6R}npA|`o=xhfl?XRNelKn#VdpV+JcLh`oF4B(m+%o(!~R@yCmy55 z8T*AXS%T2je@&f4Q~L=qxBq{N1usKWq6FKt|DU49H_(&}!65Jdr)Y440by((fv)`j zr>OB{G^IdDtpC^4BAVKd6?9`HdwFA49DgH>?ZB;&5?Fihzb0jWzX*}4g1ET}!F~95 zw1zyPqz~UaD2(Y7zWL!7(7>9oXC8l#1}50_5oP=X8gbw{L&BIG#(h$g6l$xv2hT@~ zB7_~~_#hhS5hCMokzrxX5WDkO7q{O+fw7aA9_e!9kI|$Ew!xxDvS-#4z*k_Ape>FI zyhRUS%>J_n-h)Q$_zmP?!Y~8gjRuBTfT#bT3rO?s{@l18nxw;R-l01h>t6lWMRcTv zq5w+Li4}hayZ~J+f|(5l{N1u^AVBEvmdvB*)jGi~keU9UUv5S?D*;!2FN~RCA(gqL z59PW0aWAw;hxa1+unwB1xRLAxfeokqAdDTv0?ImmFSC>8OFEeG3N%TFpF#3rZ##zm zu9}0E6|nuSQ-7D&(efdTJ#XXhvi^uLrc5!bgOTG#+8DXe-`!N9X+8?CbXsz}`#vrC zZk!5TT@gZkF1{BHOeyLgN|57u=nXLkj-v@R3ezc7avUE=UxmjzCRNdEG}}kmfW;hF zK?5^Fnles816_(8x*Fv8%L#pQ0er+ngPa;?8bgmSipJw;TGUhnO}n895sK5Dn&kMc z3L&(^sdi0rroUIL7G20kVe>`*&rTF@zE7}rL9oG}2{zmgO~_CT=6L*>;K3~(dXR6y ztADSj-RJq|dQ0Hm=<3kn0_ZC95#&5@RWz_9P%YpoFrZ*L$xrxw1G(@Uw)_O4->Wm? z8lQzRZo)Bl+#U_I2+eMIE*cmRo)zG~eh;ox;QABjb`mZR;>l=WLMT+nzoLOALC_Ib zm=wk=uszLzcq%#yJD!V{l?i(m@fkEQCNR(9hrgf!7A}OIlxW0_=OYhc*36H7FSFr< zDfrdPXFmD6Y=o9&2|It{SJ6NZ3#2Oid%-+KAz|C!J8jD}+(^L|Tnr5~v4#BMzbi$f zWdm&P;KaX{8SzatD~<8(`ikG0L4Ok9`pCnCB4zw08kiB5R(=n-ao^=d^kA$;lZ^Pz zS-4~F2H>h_U_#;il?=PrGLP-TtI@Iug-0TW;hlFdY$wh%2NN6g6xiR#iy@jgOubnT z`R5Vr^?O=_SNQKHRojIzA$oEGEB5CLLg??D9<&M%!6go#M+4y<@TXAm=L7vA=n2_} c+V;;A6aCBx_e#K}7lg5$RD13Sqt6%q4_IQ8k^lez delta 12673 zcmZYF2|N{T|M+pv9J?&p_sWrdm+ZS_izrHxi0oVT=%f-wNH{5(QXxh5UCJIJOGzR{ zghGo%i~sdi&;Pma=hy4?dAsJCIWuDpN9MRZd5Ldq{1P9FwK+!Qq@t&%r&2OH>WH)3 z8B?nh*M}!J5HV7Wf2==sg+JlwBZ86<<;5eycKFENL?|T48&MuM5e(qt(-wjnUffN> z=$X*&7^$e}si@GjKr2Cw64y*%fo&+w1T*+J(M+%+C>T*xS_tN_9MeLu{JRfR_=p~~ z1&_e!C^@YJJ)$C<-BVvdf+Rr^oj@Bp5%kflZG9(Ils1Al13}KHiujb^$AlhU z6+A-N%K(F}NrEgr>@X?_Q=`0GB5+lid?f5&pAt64)T+?b95rlk(i$zTEfe$^;c*58 zjD{9=X-bdvQp13s5vzt>QqVx3lCmA+q69Evv=jwSjEU@?nWC`idBTnhrRvW548rS|DVx@Qvl|&f z6XM;O964nU@I5$m;C5^df4WC7>4}#}8-wEqCvibhentUuNoYevjC<8Kk55#LyYD$` z?TJw=6RS}t)I2JEcfx|RBh11ifmVTm=f@%=4Q1RW=F@4xS;^gZRTBNvxh>x(9FTA< zejua8d`ja`l62JNd*kU6>=J^UaRw=_TKcVi%AK&g3&0`y$JNvvxhp+dSDEOrsodFhji5!#1B=bator7^jwIt8$lk z#FIVNvHNXI27BduH zv=jRThA{e@kK&9Oxn0lc^|1+BS!8Y{aFp%Lo&4&0NAIEP5$zP`)G;NRFf*4}BVUWg zPZM$m{E6OojT7FJE6>!MJYu}}b<^B{zoVUW+&TH1U!E~Ko&J%3$2F2bZ=r5ZayKtv zNPOm^n46o(WPdXLl)H6RAm?@W#dJN-O5$mc8~O^Vq_rqbm$s0Z{f3Wzd5Ci~`;pr7 z=PxVncigc!=P4kWFvdGrPHrY$Du7$Tk)rGB{V^SwC-(w;Fy4kt7)_%1+@vy1u zGfR4+iPT3+rPBs}!cPux^iA~BoVb@u7u=;J%SG_!y4QUA9+!|qT~BTAy~eJ9m*J&C zvQsandnyLggC839Q{U&w*T845Ja0~3vdEiEGWjvoShhT@{g`!rCVD_lcdX+9&!&*aB|_6!Y!^QuQA4 zro+XZ&-WEpdV5Q=2U^^{cPocvduH-eVV={6jNE90E8lzxnrqWdk<|kDFz7P&B_`%L+uV0WWL?BNRDU7PG9d2)g$kvO+pjg+YHUm8Vpd=eWDi8$scE9VM(^AvpY7OqKvfxY04?w7sWE4$*K{(S|sm3PYK!5ckxO{CextjG*d#z+Azt?v44lbVYgzu@W zhwK))qV_sJf8Sv9^17z4`>{@0n)!l~?i3D(+$Yua#v3zkw`ZkHT^1tmAnlnramKQ; zit0g<|Mx{pn%7NL!<;5@Z6T-Mj2Edhec8MwS#V8y>3jC61#>Y%kxYpDmbNY53{|J% zwP+Vzf40Qoo!j!`Za%*rt(C)Zib+|sSo*q%sYc(&xys3>dDmaR8+W>`_A^T-L|yf1 zUn5D=ckf-T?5PsN0|VnOzju%y`HSTyZ|^rd@iW`asz{6aCp-D`n_kA>TkI=QVzdykOZrS75pN?^v9g#g@6MSF4eox`vPCF8Fcn7gfE_GAw2Zh8pZyg4Ls}Fkx zTDjHj>lXMd+V${7MUF>ewd_g35q|TtsNQsELd_2c)xXc`18g=l6dGfpAz^=26g#$T# zJDU6MdZwmR2i^~_u&UqjNFxx}n^Ewvid-Pu<13i^i*K*D8#4YBY&2lmdv2*zhkHP_ zim9`p@Q8ektMaKP@hdb%eCfhEeOnY(K3wz~5?=IT zmwWt`zb`CZj?K)UTIS#L#?OUkV` zz`95}{K9OI&cb|C!>o6NM`~OKr`Z9P?ASvW=65{cpELNWce=J9N5K2x?bQ%E39e$c zs%HJ{yT4R+9`AiuM%$X-OzNI!(h#wKqq@hL+Sj_*R!Gs$g!k|eL3!py$z^Fd9{Z~%aoOu1wM7nUo=VP*-?R`FB;XbUrUNY1MDp#6?bQllwQaUq;k{atxm=&9C@X#U+l}yxPS~ z{R!eLs!=KtRd-(ZCO$1Cc{*rF*KEVlQ}B;=Wd516`cjug}aM z6Z+M6PiE|RlYJzxI}j_`6gSjbFCoX$p?@+05VxObvl?%z`1=W0Oj)G&zubDZrAW%2JakUi$7Fxas{OLHP0{ZL zjmxg3Eh4Y=y0Qn%^XI~S-P(<&VBG7rQt8mAw zx2yh1i~ROU;ar=iat*KV=y<->)rXRQX-tf=<2U)P!Dac`R>mgT;KsPtErD_2vYX|^ z)(+mfssB4D*jnX=o>BF8CHXZPYjZk!rW%`pFO2yi6Ds=_mMC~^6k9`?f2~EJ)wGtu8m{UDf-wXT2+e{MOkxe zgR}8>*gL2bJA#h6VWwtuVnd_2I zR`XQPm_00Up*%Ux`kd5;%|dn8mG{ss-YfNS^^qCtWecjglsfb3wp@Sq3&!`~mhOfO zUeCB;^Y~Vf?9sC~PGEfddQ2G(#A)--hNw6%a1W^t7Sw-8qv$SNXqhnHSy0Ss$$uq8 zD`A>9(lS%EMJ&7LMbn~%j<)Q_w8KpE8fR1~Rce?Dx&Ex3kgr<(wp%n-=TyY@yE6=@ z+^o2zXpnXOGL2Q((C)`uG+wg1d02c=*Vnn?c&%(u=2}!1bZg@W+Sd{2C#= zYE8v?@%pr~6R&;F*WTcr3m4+ulCIVk5bXPDByL&0{YPDsuan95jxkT`Fs|L1lgG50g(-==G>aWxO< zM=+i45IrS4^E_~4UjFX9+gGR38aRxju32b}4!5Q@S#w{Kd}Mv8SWq#|(uyH0&1$&m zez{7GcF)1C#_3o$uje^w%VNL%53FSTI@tE{8Vv;E?EX)~T-btB>4 zK>NVcy6gg?{kHlmqcSwc>gEg@T{LGg<2Oa`d#ULUD2wiix_RxICuOq+#!Xh#YBY4u zJ($fcVjk9WT`n|s4-?ZIw-V)wGktv5?l6eLG^FMT?_&~z!5hH=^N@t2i= zO^!c4w7p!W4C$=pN_R^ICcTNjPp&I3w_G;u|8hRLD5~`LK;EsrwlU|}#@cV4W&N2K zoqZ#uOjh=&Q_s1muqme>RNK>o@6--4)@iYJ$13hre!=bJZO~cclY9L5)wOGHCDIG& ze~OIl%HGoEtLZ7(XcqY@@QgrNjmf(l@54$e)(hpoqx)mNqW1=GA#%9boFbZnci^GM7XGw$k*nHMOx zyP5V}e&>Yw;Dq$oe#>6Z36)ikqw(y=Odq~7tXnJm#v_<0cjJ?=6II5iw_6WMEG|m@ zT01B`Uhw4D(m?O>=O-t_oax3W37?(B$zuYVix0RKSyHtq=SXg??G?u28Bc9OV+`(V zIy^X^dd}vxMNm#+Wd>J$s-ynUwY9SF(lEdh8qWg;0m#&ED<0q(#li%^T zS?6EhXTsoiHZ!K0OKW3oul%VPW+B4}E6;Z2y zK`XIrvSmeXlNrsnvrnG3IF2QR^O|NS)`okOmu)?N>z!;{=v3$~ELu6_H6nM(=-E5Ff@|m9OvKL9 z3VHcv1$27wSAG;2nKmtYaMW04A+h02n9_Jm|3Nvj&heEy!AD)xepZ(TOXsB7xo6#Y zu6k#~yK|i?D&+af%);j4FVm8;nNgIpT!{n6++XwV`*!_^xWwB@zLow}ju);@MVDl! zA2V)!{9Kn`A=dNrS5fDTTBUGTA`gFh+@bd^+shRU1cGxV25u>b(PTJhUyjXk?7qua zN36%tbH_*T6cgtbNlis{hVVZ>Hxl+>yaaf{Zrfo$FnGeyJx4XX=rIYS!^wjrjJ@i! z1IC2?pPwk&loAI_fuiGtZ6wbHjTmw2Tx~IpydgV7!f!lsu zniJ-l<+{AaFIz@BQ%xM)6t4ZA5DMoxu}D=R0Jf{&m<~_>*Yz-Y8wR%JCSH!>e{|+3&wS42`syHt|Rb)}(vyJ9RjFr;S=g z18>>Wm$`0sn!ywu-)*cOiTYc}FMXbMb4Py`4KZ+Mn)-c&$w7H!FJbQ71M%is^YI&A z?^X*R>JCfy^ok^eJ~WaKVEy=XUOA?ZUMBF?NOpS1-J|YZw_e?*9gXZAWhJVLw!+}N7eAKOzT7ftGdyTp)Sk%`bCfAu=6mH7+5Rw@GudH@ zXKSIVz%w(Gy`h{N%#~|@T;E;J$#5@7#PUUo=Iqahtr{`uXIxIK4T{NbT|Lmyr+Prh z!9Vzl=apFrh6|++o@ifSiHu3k6BYIt3?=He8jkJezd+|#Dc?`wy6au}j6w3ig4o4Z zrgAlg8a26z)xIi+?zH;o&vXhhJc%JYUb1W1r>lU+nsUp(P;h8trQRIyMo2*TEOk;1 zuZ!e>%JfjKbYRC1@8x2+W3YemY5}@ zwPbdvN=+XW41Lt^*`T3axU`b$l}at<`@C3wcmGtI;X`yfAdFJVbiR)mf|AaanQ zelp?wGbPT)_pIgiiLf$WctNGBvW0$wvF*1@V{(?kVUC?YH09n22~*scL-+UQ%u|*u zcpn65#v8_IzZ0%}|L!MGLE50tZ>BtFa@3oCLFa8X9?rAu2B{gqzcMWshvnO^7GmTGbg zar+zYx5}q_OFOFif{%art{xRLt$9DDX;fu)N+yr=^7#u-fy0^s{*_X0%(h1hq?+V} zbH$?0h4H`Y<)XBmUsBYv`uT`6g5lyJ)1N~d$s596kFT-~`3r>;ljjykb>ZbdhK|HK zf>BW!G5q@#1pPm=O2`Gw}{anBW2Q zo=jZqAci8MXi&5$Iut#M0mX=7LNTK@pjc3>C^i&3Y9opR#fjoVaie%pyeK{tKS}^4 zh!R2xqeM`fP@7R(P@*UjN({9XC61CnNus1s(kK~}EJ_X~k5WJ>qLfg|C>7K;lqzaF zN)4rs(m-jVv{2e89h5Fg52cSXKpCRoIvAsNpiEFZQKl#}lsU=*Wr^B_vO-y-cB5=i zwx~U*y(l}BJ!&6nKgt1h0Og1}h;l+5LOG)jqg+s~s3RyhlsoDu$^+$z@pl+gW zp>CscQF*9*)E!g->MrUYst{F#x{oSGm7q#dWvFsg1*#HNg{nr?plVTdsCrZb>H(?| z^$_(4)r4wBwV+y2ZK!rs2kJ4Z6V-+4Mm<6Gpn6eHQGKX>)BtJ_^$hhKHH3PB8b-ZD zji6qkMp0v^*QjyS8`N9W1ZooX4mE|EM!iSPpk`5Xs1K-*sCm=^Y7zAb^%?aA^%b>* z`i5FYeMhaJR#87tKT*F>zfo%mv4hmfD1ZQ901==8XaPEa9$)|%0VaSM*Z{BqtN0}j9ez!5kII01(MXW%g40=NQ405`xLI0|?G zo`4tN4fp`QfFIxw1OS0R5O53#210;PAPfixB7jKXI1mLy11A77a1w|CP64NZGe9hG z7Kj7lfpfrlAOT1OE&xeDGLQmX1X6)ZKpKz^WB?T4GLQ*e0j>gBz%?Knz=7+)4Il@& z3ETp11GzvRkPqAe3V^%7J)jUM0`3FFKnYL^lmX>H1yBi80o6baPz%%n^*{sg0B8gr z0*`0|USy@Cz04xHZfX~1e;482Md;^w&@4yPM z3j6?m0>6OYz#27r`6HkKH9!C`fC$h4v;ZAI4=@0X029CrYyemQR)7s)2Q~s604Kl& za05I5FTe-z0|I~`AOr{lBETkKGq42^1xSDxuoVyoBmhZ33Xle509il|kOve1ML-Eq z22_A;fGV&ZPy^Hf4L}pn0<-}gKo`&h^Z^6F5HJFafgOMeuoEx^%m8!100bT*4z!>lv7zf?} zZ-EJ55_ktp0n@;HUzd4FC(k3a|m}z(#-r-~_k;Zh!~i1^57d zKmZT~gaBbc1lR;@2DV_0=;aTaYal2aH3p@UFd~LVcz8MqYxwimhU0J72;8_;1_|4Y zew%F!LW2PL^;MLB@5B7rZ6u8E&z59a32JU!8BLTC;XNAskdGBLKTd2XVXEsBl-@;c zZu}&={YJ$1p;>K)|NmAF%##4gOdAOnp6QTm_ zeXS6-=s**?f3{G>^w8nN(C+pB=WzP}d!W~7qdy1w=Q(ZfBw?rj{6XX52o1)KkF)4e z6Y&>lT4a5ivX--hn^N5Oi->b|kud2$+x|HbCp4jp?f~F88XQ4?mWb1!zq@pW880+& zhe1CYc)>vD2?_IsK_MDMz(AshgayLjDjEdC!`XXDm^Tbgpg|}LT&n-RLxvNc{@s-y z8VF*~H)E8(CW1I+d^0A4JEJ*f^oAKezrM0s`oAj~aBcKHne_SvS-7|w8oUy?}2X;fwS2Dida33{+2Xego?`YAMeB6iZRE@=uWxg zX4vYVcV&(LwN;_@`Yw0;Jx%mETMxjYuGsuJ6s2bm#`S0A`koHo)E!SocV`^X-5I@q z?WueZMtRdhkf*$}!!}Yrbam6?n+~I=Y!jS-+G>C+jA0Ty?*xWtdql0Xfsm zf@d5oSrGbC|IB)zB^AQ0>_1D@>r3hP{w&cClQ1QMb@loZMXwfP!`;!86k)6hrUWRx zE$DW7`TEqi9()`PTnHQc*9Y4uLW3A1K3?xhO@jvr=u^{E8{rpUqLU^x_T%@_Kpp$p zkKrXubQo9m2nkce)B^?oEaKK^c?ahIQ5~O0BObgMsYy`O$3LQhHNn{l*L_98YzXev z>jN%4A1$g8x>NACXkd-Kx?_O{&g!GrB=b=cW!+p`4iV;-*B)*l^)J zuSw_>*~j22Xkd?RX7>5B2@8u4``=CKVH2$0GkARszH9w)ztE%_#=ZQHNh2(4 zDD=-ZchNTHm;+T9MUfCDi*Fq#VG@LL=`fSINGCRa?4W{$0h=^K#?gRpj+m;T^NbUa(Pk0^#=H0|8tfr3=HYr1=o^}N<-I;N zzIztEP~e@H4X7FMMl`KPwBKt;jmz5`Qp@1tlkmtXEqpf`SP(JOxA8{LXdjxDz)pAw;@0S_xN&bUL4p7-I}NiI^TK~;{m`-@(cVdffXh3J5VY3M zk_BHw)BJ>_qqx9(5@t$ZIf}cZffez4ksASjTI@y;!^hBs1fiz}r=NjOr*jCmLjzml zia{s=?=uP|2;nklf)O7?3KKmJhY@f+*D!)SE{4uWg5ckVTcN>Tg8w3(iv~7CySXUB zpKH%HN5Zs-?VHp7u}p(|qFGI14okt`*(A0C!hgOdo}qQZMDoqTzw4Mjz&Ek?DsG4d zmc#~P+20j+Xv+v3f4?MJ(K>Wy?Pci99+#mLCVoU`MpP{tS>Ko+H$%&&L>1NPzsptcXxL!R-j06cXxMpDG+E2v`A?QG`KqyDDI`WyA-$L?obMRNq=_U zFMs5oy*qnnHYfW$Gdo{e5XajQF*KAB5YYet6aWBQ{xb$62=>i)3&N6zZ~~u$Fy$c@ zKq1&D0f8B!&W42kUt(qHwSPGDB&wfv9Nz5yyl{2>eTr z8DfSY2=fE^g1`=kE`%3w_=BJfo3BwsR6>Pg5~eCT9DkAUqrwzx$mlRo;A0lHh`(6L z3j)FU8h!&bIFBju3ki-FG8I4&hI~z)926A`Q{LX>E#4Oj6HEYriw06D#{g;fCWNjK z0H1+p3{e9Jwn#&tC=P8%`*|r=8XXcxfH7OAD0HZA!cggQ-dmJGMi6^l{AN>7L9@~F z?6aVHS=nd!vwQSao3~!F&Dv>0Z@2RNah!0yY`2tli%MD zp4!(hp7w>%)|_&n*?Z+IfDnEJ@=yA zz?3Z0meFJ}x)0O%)f8l)k#x#*N~z!1x{jTvWVBjeCL>?@{3~%zo27gZj=J|BsE4O zR_NLf(mM(xdc_fCa%JzHHQHN{{@~Lwd7I)BB0`456^DV*E;@>qOH>1D)a!8>-n&vG z0&RWTDsMa<*QBSPr)ZVk=Y`Iy^K26iLqiQ9{BMe-LjdSHOJNb9f(M6S0ozoR*g?yb zS?wQm;n~)MK{OK#-+S0r*iyil^p4VY@;_9&`AO&eYN+@qJ_Oc8+Zr5Oj}9FMH-jqt1|=%F88+WW|=+QG;0o5(qH{**1|~ewMu- z?@u_7$w*G(&$m}4Y{-j{QYi|@+l+K(wDBC+T((6cX=GI6P6fqCKx zS;9%Zd-yYX;mPABQ=U+iCR>n%3qKz^)?%3XeyQd-2jlMB>zkr$N~N!h^B3PZ(Pkm} z2N8YREjKp_tx-)lH<0s9B3xcB`-a0c8 z9^xb?*x_E68aCQ5HXqxc94*wd2Nz8wV zpZTH1w&A`!I^$({+mudL_?p$?SX zKl4E@1s$@1uffF})#r@oCP!>$pWEEW1=DK_(XawBbC2tB#p&EDh>$81gwtH)&3|C6 z;kRNLW;dTmcpZ*wFSq#nPzIOm{J`w{c=)9`SV?ZO2+8d+URDd-GJwUV^JeaB9w1({ zadG>mqxQ$^g7Os)eIr%JhQt7|M=R}mxp~1&L_FsjS9Hww(ZSBGT)$usxSu;m(nx-(diizMP1P{l41_oS1d2e(kC>5dgR!IuW9GVlFu}}`6n}iQ>)m#2`^L(XnwMz~*xGjMOx-`d zUUev4GZ*Eurf1!WN)R&ktNf8&SX0gvRG+Aw^)34=xNf3~_#n=+!ogQhC7yf2Rr^tm zo2ZFh6;E}tFw_h}m#n&dYuE(@Q!%fB8YgqUFk+o4tNmKC@@;PNP zFJHbO=5{n<%}=KIp?l&iNpE3$TYNRIkYlMqZ*tksoiZy0 zzK$k+I{Q`pm|mo>;Eic*_@PeYN9~1F=r_Y+Wm=a%0Skde;>+1>d>mgdOuZ;t(`+T? zj7h%}vQb6b1*m$2*h#l$%8r&!m??~U z8(tZ!Ifl-dg*tt+_oEFMESa#WAOGYpyuJI}_mrtNy?lJGT3BAJ9n>JFc7wmLSIfPn zETqtLHQUS7#xa*}3q@U;{JwlUW~hb6a1T4<2JO%R>&0!cn-rFgF z^RhO)&7SDL?T;!mU@W#M+a6J;P8F8TYf|I5<2Tx9?4Z0iM(WL^NYamwkM&INcbbP1 zzk)oeODRC48CDr_0`OZjS!`AxZ3%Kdo!AoI)0j!V%09-4Tn@%5xYAwdAIv)l$sGqgl&m@Ypj~ z)GXyi&lo@Qa5+@|B1Ju-HB=U(VCLvLnU@K#59)N2C=D=cHz{A!_6+x3d1(I12&Kz+ zn>!W8r~Pe*QLz;(OipZx^}HcYL@rZrlp$gG}Y6Mt-~1wRIwG?7QRYnf;Qkbo4}*@CYGrNvHdz^e>-CS+HM z{4&81BcfXy9AM){aOtb5v4W!zYST}B^42{OCe}D;xL?fhHhIHE5TflTH5bGd+7=!b zT56H&qH3e+FpqxL&RMhgM+FGQh;5dLx4UQ7j>nv%v?Xg8%BgW8sDkXB!JbDCMpBFA zVuh{~^-hbmM+;F4XX}sEmmG%nJN<*i@1Qu%{PYLFJM)y_cv~4UZvgd3zL~8q@^!!H z>n4C9YJMQC^8}uv$ei8n5+sSmdMZ5IB9?@kfEy5L&p1e;ba6wM(grC~5zdK@trtk- z3jf?*k6ed!ROP30AMjEfJa3H>)6TY;<~>}?l5I76?aXZjD8#N zHP=f*Ms_At^ukJFF)PdW_oND0Vi1ygz$cDCB(uXL0uSNt2n`mNO8G~~xpPO}wx zr^JeNOyrzPh9A|=h*GUYE99azzCo{i9?4nQQw_VdYqXWJeq(7VSa?NTmm%Da=*3o! zKdu3-*=r>zJIw2?z&;Vz*w`BEwP3seP&i#`_UYX)ZRBgetalS;z^ufr;{h|;H$@#d z1Zphl1A+1?XRR-0yxZj*$eweJA$AaMC{^%vcI#R-Uvd^qpRLYpkZH1$HHr`2iy52r zsr|OIs;XM|6=nXCBV!^PI&{}A+iJQL>HUZaFE%0bqEB+w25AQhCF2#60Z&|TKnu_bwG3#K$s4@03NXeRqvjoVkt zA&F{8SFcA)%tJQ>t>O0gbr|SB8VLPWah&=s#ziGl%NzM0%z#FPCZ5-OfY#r&8k6t=F(`FmqOI1yLt{AFjc!gGC z#X^q4U-m6o;%eg~G(NCl(o(i$^XVX;mRGx2`|z)f;dnJc684q~xF$1yqU~N^mHAF* zf637r$oJy3Ple?8kkIEtB~IeHH)Rz{tFTqcQhi0^>`8)DQv|zhGe>`Ro~nooFhZ7m zM8V~edX%n0tpfRh>L2(S4ee0pKjqcsKUYbQPDWDqpVJ(m6IsBubx^r5loU@j$!M6y z$OtYZ~eyFZqmfbJZofIfvxHfRcnRNvPMu$Mq}?`KF@# zzNOREO#U{$=N{XgqvGlI=r?hLV!}R(gaNqi?!JzCmWZgild7OQK@Ej_voTWNr!^WM zqvgfj=107#PR4uhrP1h|lI+$9$zQmV@jeGaAGD{7wI@}*2UkAOwW~2?9v)gLTC&6p zBw7?J8hjK=Q&mUvf2Y3CSy{{9B-U#>^nEA7)~Po)@rLoy-T3aygMII~&&Qx1rI_bJ zLpA-qj(wk_*_DXrg=MJ5y!1WaN)VBEO=?TtEps5r3M-?E3d^U_sIE(uGAPnMBk|{&Va(%2X!%#R<>T*soka9ZVfyJY@a}lH?HcIDwx{L$o#XIal!v&NX2ilc;43PteND>o zk?W&>G`&te-6=TWWneT(!%=?0AGSTuK3uoqZK|Z0iim;nS8Y?*m7;SNyoal#N@L>4 zy^^UdU`BpgWe0}wa%?sJcaGe7tg=sTwb$dExJ%*NyOkCbgbqUirM2~5q%9}e&y9kR zIVF&rD<_QNw2UO^=$L7Y#jhkI9q!nadX+=?2F`dFjPy>mypT*AvUuuW-G2pHy9Qcsy+`hUflzbh6BN_VESmmf ze#sK03%KFx)uHZ*x{`xU|3f75Mo~|`I^^;JL1&$g>9f?7`F|fM01Vjkqokw8BB1f_ z1rb@e1UeQLj7vYnPDn-o0OpY)-}%WQl^}FTTr2^2OIOvMT$Uu1Np0inX6* zR)?cw;VVZPHB7~9#x;IguJycN2bcI|&V!7Z<7P)JicdHot$Za7EDD@$jmFxJ9R6Pb z|4@1HC5i9=d)F5qhJaissLGicfm!w|f!BfZCy$SPgOvcawPi#RoR~bm4_rQchvMAa z3hN5s1`fOP9bHm%}{WTGAIp9FdO+*Tnhe6omE0I>b?95rlnGZ)nXlC258R zr4rUHMlW0&M1^vEg&O^i_V>A0rzQS4JwOVsD!~;`eobaAwavjJoobO>@z;n%ep8kW z6`_G;eqA8@-T5z}VU~S~nJx^~RZ(9$XCs)vLD-yq_IAd*ZO@VxoO5sZF4efz`p2=1 zVv$)H*kS_lovWXbCX}%&J7>)r^Qkyz4~Gd%CXsr_u#KM$gu69+PoGa1PgC^bQLyflWz%MlOrPi_5xA7V}}vhUC_^ z{8IJ(T&tf+b*8?}Mg#0mvBNJ3)(uTRjkaF8*0?=;+2!rm;lY1D_EAwAJ30un>y?wk zP}wi3sZNxYm-@caExFrA9fgoyQ~jvPT11f}1HF4&T$$yHUqjJGYaP{3xDL5p!IW;mU2$TBTA|N83v z@yT_>o9%R0VCEecmsYBbn*PHZ5l8Zt`-Vj!7c4uWKhUPP8h1)jF`0PAv3;Q`6U6<0 ztSq+4Wj2Ru@h)vH4@G?N51CVaXq3U${sbx(sl7ID!={pRn7cU4Xur${=Qj!WZc5a< zE;rdampA!xMf3gI1#fd0gy}m9#?QUCoQ&9wxg~9Xdvj{m9&>XR8cO^t;gR^`Fwb>4dD;!|IRfmPhkFd1B74h(tKJ#fM5Flfrudd z%@-D^*WOjZ&h`;3U*PzgFTie{ks)?aJn)Ivq72Te@&_i=9%R(XYrD9p23O)wjlpVOtu3>jGtC-l6Dey+0$#KN53{g-!BtGhjD_p)A za^T;&_GjE6U4rN+dC2Uim?iFk_lF6Ta+LhVG-!WJk>5~Zt}(1qK0b&+Aom41v-WH}marSCT*e1=)fu}Qx!0!U z@n3o3$qwGD+{%jVMgTL_WDW9%AsZmLjn@(2eJHCtvSEH zQKc-NI-6EAWn|7#Qb?jPsfKxv$M|sKLez>A1?ebt`=hX?Haj?DS2O{h#g0{OH?WG` zy4p8{e1r_`u&Y*lviuId_bV|}B7J1-Gh=vm?r>*kTA}WE#~~9omuI$HWUf>GrGV8g z4sGB*VBBFC`8MaXrH!NP5zEohq>evxLF;#j*2=n~W2ifHgkxWGe)!!wdy6Gr;GYkt z-()LyzH1cJ+Qpa$Aodc2xi|rOQ!&p9sp#KPSKxO?6ybDvip3JyLa4u#&=6Gb`$yx%{(^uc-UJh??^3O@*1Ze`(~$Xl8Gmz zf(-%dl!tv?xs|>1t%;{&?$7j&i*D-CPf(n@q)zbHQ{%?_XLIs^C*c21J?xa5romb~ zuv2fD5sD1Q_58qRa5O3F|BFo3GlsCv5%d8aC;&%(3}89z=>Xlp07}B_puyNc3aBI| zkONM-V*+JieIaN)CQuPR24Vr#;HZfORDxp$7ElF_e-|NR!xq65V2dcAn%F?rf6Ily z-P~gXU&2uc2PhB6a2%j9e0~K7s0~LxT%Z;lqi}(`aK#l|pdoxLj0ZGs&#h1VBR?c!5+(Q5RsK@tMc%u;oqW%dFN<;FmeRGk(CTEiV zGl>j!A^}qVjrbq$i+}jXP5G}m?Dc^IeGSw48}h9Zdsqb!)*gkuW`zE+1U&-^Bn8UB z!%-xKdBo0wcxDJd(@9}bz_?O47hecD%jf$qhe`(H(7wX#$RSZ>#DDp}fgR3#&Km#$ z09!}^0Q*0@OxOI~ycq&AG>;6{a^0?nu8;wxKmm~mk&x#FDdzOQqibG~$7Wwc@u>T6?S;R6780D!RSD?)Y*)VJsbhM+2f zA1I85HBbtLR7_5U9uGFbe~nQs6F_OS0U?GwhL9>k2SWxe#b7}GWq6OmpZ--P& z@&DI^u)>r;B|>Ci@}kj;DT&54rZ%d*P7_NDgdw0>mwr!|04;COh=I@qvk>B;$;A`- zmmfqhFwkTC!%eGZsI zR*DewY`l76t+cfgh*3$4Oeum+F{0GkmGiZxh(lf7*r<=Gc|~I+k2NokLI0%I+YFz2 z5@o57mGdR}_JyaKArpT*e*PJElW5g^uDG!6Eaz}{v)y{=c`^?R$j9=Ecj8qf@(CX@ zOi32Tn1hZcrF5w8$3Rb07$(fjMx9{3TxG6CqcIIpd!IF={HsLmlI+zBTiD;Y90yIu zI3?K(Y_xX_kY+MURL-U_e8gL{b!ND7nQ|dkYnywUZ9_9-w+4k11F`Mi;_1jL_`x+R zTMWxxYs^onSRICp<6|5MEGYQQX*-^nzl$sYr#tzveRg3Q09pL7;-qH<aNpyye^;&PH-((i{F7YzHEbb<5&D<-kxv^JZA zb{QyP##XqvIDx?Uc}#?Z{zq?$Hx5VXiq4H#FPz>g38k{#g~{3u`0tvkbl*5}lJ|PB z4VE5c3Y%J}A06N;&@^G60Wz65ItTa>k#?0u0n&{6*6`Gg%nBmdP2up--Qerd1RG7e z8C^UqD9=w_kr&DyjGxWPC)OvipH&p&`i+S2Q)0MMR`kB8pky#>9cvk{=p6C-7F5f? zzx8!{tYJFcuS;bT_<_1qCVww`wm11yr(`1u`e&}Q?tEVE6Y;@r_>_Rc@=ynIv8}{& zio7IQA!o7ia(XNrCdZk7D0}^TcRl&s&wX#Hwli=)eEU|(_hW)pFX#SO8Obx=8-eWH25bo!Cqr;5k4$qYkCA@wy7ST zHK}ZLb>$`X)+w(jDqu5wxp7=sV)Y}VI9xgV%pF7aZo4O>i7tQR%T(*``#eN)x(>gl zynkuQ{=4OaN-_1r3}ouK`;T2SLC>?F%w4bj&}xOVZ^b<>fotJ?~CbgxW{kMybDIW}gxnCI!h-wh}ALavs3^d=A_QoiVMUsR@GZqQ5zM*C3kQ%p#H7w7FZ%bs$ch?_H3p>2ffOv-i740bHDIo4KkV(FDm4t{OEtzrVH5YjPr-}3+ zZnV~WgJD+u7OynX6slM3Su^}nST23sA7)ehSted(dnI#AC6N<8{gq#$_6@5F?435E z$ZIZe3cE^)ARZxwSnmdC87Ro_jlIuCtX{6y!W;h_Ym#kOc)C{7tIB__8kLzpABr^` zwAxwtSa&{zd$m%#I~^NtkTE{2ah200cUPkUc9E1GqNHApzepv1Vsu0q_SkxMr`_P& z8(DV;-(i02gR+{@6mqlT&rNu0WEt-Ub5gc48DQ#ckJg{P)NT9-=t%OsIMT&l>G?QM z0gWE;f3db&B~5U0|BkyXm-qA{FXB*}9ixiR-+^U-UFX^BRY8E)q_AIW4snhvgsi6Zk6F|Cp2`)=y>J3gO9HqNK*^QIg~-tQ@2fv~w! zY>OLDL99Ra>KSdm_+Y6z2?$roCiKxpLf7MYNsLn!@hOx)e;-{B`?2c>BKK(uW=SQ$iE}bNU)Z(z*$&gn-Vb zTu70)7MF@9!FJ5nYi-pUr<6|CM3_s4`GbOZ_6hd5CZ$Caz6^Y^1pU_ni+4|}`IrwV zM#8@fs4emz*ucSTo_$7HKSQ{F$RK0P%KWDuFl4RB=W`q4e_F3oj2DOcw~D!C|BNM7 zIVX&%4YT~JoxC~kJrdPfIaM&B-aAq5oSF{w{t(ol*QVYrYKs3O!EjmSQ^96C(TE<-Z0su9bVm6J7NN@@Z`{C)LRA|$ z#v{`5)MeKvM0#ZwGM8DbFrrlr-orSWpYn7 zrh)3)q0alvU5@PeQ(P{1?3rVpq8Ep!nUPtgTj$_MYaX`LWVL+=odj~VYeH*~Z#cvR z^{bcKVo<&w3S|%XCH3UcJniqV+FLK(5LzFCLUU)swyy51whWV|Nv$QtObKW@k%>;a{* znZpp>{aTaBD?n}h<$XV_lnT+$>zpn`@sQ;yK>tNrcu)alRY3-((edhs;#2M56B3^% z93v1WpRkKU;s*It+I`0Hvy~CHw8X+3^62M+hQsv4_YxGK7AmAoocwQo$}w5WMkE)< zFdv5bFxX`to8}QsOCPmz>uT9p&aJdN%4j82{XU$KUh-g?5raf3|MP_K{(hf{7u!f z(MQE&*g8y&YW)?94_NQ5*gAA`#pO~u%k3=SyP^y+FHh?PH=;@wmv+9W<(RI-l<`f8 z`@rN?LPb_i9KHevEOvL4lJ?%ZNUZ}|bMT=<(MqlytZIGts=i))L!cpNRWsD!Cgw`` zlzgwGv)Ou|h{7`KYO;nd7+Z1!X=S7t;tgWz-k(x~i?ocr3~kXYZV%-lk(@Ha z*X|xy6W0}nVSijjLN;63yOMJ{3&lJ=7#p^9(kH)hMD*EAj=;uAL6rBmidEjI56yDexgkpt%j`(?TUfbBrr=&beh zz|b`0?fa!^wfKt2J|F(y9V_?KsBa^U4y8qhn8_RVY|jQm^Ui}6&Sg7qf)C}N8Ye@Of` zO^9xmL?3(J*w>yT9eFu^M4=x2N&Au#~rvFQ(DyzGjVPaQF&wxldtyuP4603gidmna# z7&vJHJbw)`usgieKHF~2rR<$j3MP0l#2Uf4JL^qWQu?su-RrHic5=0_Tph^Le1B?> zJ{5wyTOUzPFPsL`)dK~l>CN|is26LN8?zkg+>W$&nJq{=XTS9{zs$IC9Qfjw5z?;} z?>$mCG~hh=Dvno+dR|(UaopS3`-K829qXi_(&Z8#wwkmyNM-~(3R7*ZYG)jXXD-V6 zD6B9y*I9EZH_dd80yBfj%J<=*>`lF}D*0rtFr-t(q1cizkBUhOo*utA z>_J3g>w)pd7;M+NJPX4Z#ca+CFX)WeMYkj@$x#r|aTyj-d?d?=a(PKk+ zEXndUk2)xih*BZQST_6q!3H(Xj4uWO zaODrOW*u>U7AyvI$?xr@I1rv9fypmuy%gWCS?46Qv^ zAo#oUV+D`44*>!IFEJ2;K^#aNS|9~1J@wOrULlew*i^bfW5y|!$8)T$E?}%023r$W zirF*)C#QeBwykjzCWI;{Md}Cup|B<6X(U(umEdp*IT;BK4}Au#PTm9$=$F1Rfr9L# zvfxdW5VDqW!3a1ZgG#WT^Cl4uez|KdPZ^Wddmc=;p}0p2 zTRiIXmp+T-_#hh1yo8n@r}{dMxS~z|o@51;sP8qqT2anVoP+ZQ;PptB7_O-!U9N(p zYMyxLr-D`^P;bUvr*NyP*|5-PW!2>qmjwZY>ddB5S#F#?lsyiI!NontYuE|g_>*p7 zTeGUeQH}2~p?xh-WEDPXDFBlXy?pQIXe)KyRO`oEkY?nN^LAF^{k_fDVKFh-L1R{B zZ}rJGH-AT2nko_v#LlqJ%Z$vi7%iu5#cIPu{ac`aDmr1xIS{>Z zhn@Nj6V0`B8B9`iWryRk5iei@0IDDWfDa*@K!e^`luKoVHu<9(k6RSNmneVQR} z`FF9+@Rzm>J}EWer%`bjIarv#^PrSn*OskUpi%qQw=kRvHM1AWy>*ZglSj(<2qPImZxvEU7M2d$LjtkrL+_=A}U4tA-M`xxQA z?$5q2un^J0p@z?E#YLq~u&GsO!#tTZJsNH6f6r?(9b`s{wl|XXL(0306QiD4C6;e)Gow`DzgYd19SF8= zpAwjfE>ZP8wR>#})O*`+YgJ2uV~AJC;L=tcbV%Yi6-0*}wTXdy3ssNB(E zq-gOS&Qi$u5;2wpXMeIYM_ILK3H~I3@4UtgTh^t9-EpAFtDki(-&i&b=BEv-2D7N) zjs!t`7mZsmn6V8-ve_v$N2LVaj28590L49R(Uw1N9@bNUDtwr9zoy9UU3c}%z|&va zKD(P{=jXUGZ=aAbXE5{h%XZG*;{qktc6^pgBnp8im#{KAO$T5p^s6jC1SjHpGzv~4 zDa&0OXF%NMhwQHwH3gbgWSWZ;n%u>nyzh5Y+8w3`!9K$+5Jr6_3PSmjnpA>ch0F$s zf%m=E80Z+IfJx0Xw%k)<+jGUd-a~&}&#R4gGw1gkK961eOaO%&yh5fyZ5#1%Ga?k9D)a?Rn27NczXBA*Sn%$t8J;1Q1$6xaEr$Qd3T!ekA|1{H zOveijkf%B{9X_%#D$#PAjEy^+*VJWc({8r}uoCOAwMlww@n$FMJyPY=jHW)suk)Hc zGNsj9LL4Zg#THgA$t#b@ny1PU=`nXbUK>W%>41QHY_R={R(O+pQo>q}UjzD4u*S zjHL;VCAmiRT{L36cIe}TU+9ku=`i@V><4(ylGxrBUkTf{*{{xYHnLuxjXd^*hK^-C zJpzoy>|wEi;KgxDWSv{92x9h;L7S1$($!c5LWX3(UQVHB^_N0 zF0^=`SD{KcF{&O&0RVMexyOHt23`I$Ty)WRT^x*qCROFoU#`~8n4%67kRR^>#nC*t z2dqG~BXfv=N@%VS0X5J(BmvSR)rf)IXu*pZsEKAPG4KKE9TQ1F0@Omw#w0);G*M3U z$ZirKA6h_ps{L1KKnk=$r)eMs%A)y;6bMCAmJDc)Hp(Oe8lny(kUznfQ=M8!!-k9EHpUqdXtJMh^-hpUcXpuMNbY!2JJ<3P+3B+#>}+Tmayl1OO2I zSCGfK$oq6arN60sY~QZ);Q#=6s8b~2e_72Gp{?kUxpY9bzow+b8}nf(Q$r#EKqas#pzf-H zQKT6IP!1#LD>4gBjV