Browse Source

添加统一返回结果和异常处理,新增logback日志记录

wangzaijun 1 year ago
parent
commit
89d43f1833

+ 39 - 0
log/error.log

@@ -0,0 +1,39 @@
+2023-08-12 17:08:04.082 [restartedMain] ERROR org.springframework.boot.SpringApplication:822  - Application run failed
+org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.smppw.analysis.DataAnalysisApplication]
+	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:178)
+	at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:415)
+	at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:287)
+	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:344)
+	at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:115)
+	at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:771)
+	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:589)
+	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
+	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732)
+	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:310)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1304)
+	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1293)
+	at com.smppw.analysis.DataAnalysisApplication.main(DataAnalysisApplication.java:13)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
+	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
+	at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50)
+Caused by: java.io.FileNotFoundException: class path resource [com/smppw/analysis/domain/dao/nav/AbstractNavDao.class] cannot be opened because it does not exist
+	at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:211)
+	at org.springframework.core.type.classreading.SimpleMetadataReader.getClassReader(SimpleMetadataReader.java:54)
+	at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:48)
+	at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:103)
+	at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.createMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:86)
+	at org.springframework.boot.type.classreading.ConcurrentReferenceCachingMetadataReaderFactory.getMetadataReader(ConcurrentReferenceCachingMetadataReaderFactory.java:73)
+	at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:81)
+	at org.springframework.context.annotation.ConfigurationClassParser.asSourceClass(ConfigurationClassParser.java:610)
+	at org.springframework.context.annotation.ConfigurationClassParser$SourceClass.getSuperClass(ConfigurationClassParser.java:923)
+	at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:334)
+	at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:243)
+	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:188)
+	at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:297)
+	at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:243)
+	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:196)
+	at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:164)
+	... 18 common frames omitted

+ 204 - 0
log/info.log

@@ -0,0 +1,204 @@
+2023-08-12 16:55:12.539 INFO  com.smppw.analysis.DataAnalysisApplication - Starting DataAnalysisApplication using Java 17.0.5 with PID 231376 (D:\Documents\workspace\idea\data-analysis\target\classes started by Administrator in D:\Documents\workspace\idea\data-analysis)
+2023-08-12 16:55:12.541 INFO  com.smppw.analysis.DataAnalysisApplication - No active profile set, falling back to 1 default profile: "default"
+2023-08-12 16:55:12.603 INFO  o.s.b.d.env.DevToolsPropertyDefaultsPostProcessor - Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
+2023-08-12 16:55:12.604 INFO  o.s.b.d.env.DevToolsPropertyDefaultsPostProcessor - For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
+2023-08-12 16:55:13.545 INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
+2023-08-12 16:55:13.549 INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
+2023-08-12 16:55:13.611 INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 44 ms. Found 0 Redis repository interfaces.
+2023-08-12 16:55:14.350 INFO  io.undertow.servlet - Initializing Spring embedded WebApplicationContext
+2023-08-12 16:55:14.351 INFO  o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1747 ms
+2023-08-12 16:55:16.174 INFO  o.s.b.d.autoconfigure.OptionalLiveReloadServer - LiveReload server is running on port 35729
+2023-08-12 16:55:16.220 INFO  org.xnio - XNIO version 3.8.8.Final
+2023-08-12 16:55:16.227 INFO  org.xnio.nio - XNIO NIO Implementation Version 3.8.8.Final
+2023-08-12 16:55:16.292 INFO  org.jboss.threads - JBoss Threads version 3.5.0.Final
+2023-08-12 16:55:16.335 INFO  io.undertow - starting server: Undertow - 2.3.7.Final
+2023-08-12 16:55:16.387 INFO  o.s.boot.web.embedded.undertow.UndertowWebServer - Undertow started on port(s) 8899 (http)
+2023-08-12 16:55:16.402 INFO  com.smppw.analysis.DataAnalysisApplication - Started DataAnalysisApplication in 4.384 seconds (process running for 6.862)
+2023-08-12 16:55:17.261 INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2023-08-12 16:55:17.533 INFO  com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@68743d52
+2023-08-12 16:55:17.535 INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2023-08-12 16:55:26.410 INFO  c.s.analysis.infrastructure.task.NonTradingDayTask - start cacheNonTradingDays
+2023-08-12 16:55:26.524 INFO  c.s.analysis.infrastructure.task.NonTradingDayTask - finish cacheNonTradingDays
+2023-08-12 16:55:33.259 INFO  io.undertow - stopping server: Undertow - 2.3.7.Final
+2023-08-12 16:55:33.325 INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
+2023-08-12 16:55:33.332 INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed.
+2023-08-12 16:57:06.806 default [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication - Starting DataAnalysisApplication using Java 17.0.5 with PID 234004 (D:\Documents\workspace\idea\data-analysis\target\classes started by Administrator in D:\Documents\workspace\idea\data-analysis)
+2023-08-12 16:57:06.808 default [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication - No active profile set, falling back to 1 default profile: "default"
+2023-08-12 16:57:06.883 default [restartedMain] INFO  o.s.b.d.env.DevToolsPropertyDefaultsPostProcessor - Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
+2023-08-12 16:57:06.884 default [restartedMain] INFO  o.s.b.d.env.DevToolsPropertyDefaultsPostProcessor - For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
+2023-08-12 16:57:07.853 default [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
+2023-08-12 16:57:07.855 default [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
+2023-08-12 16:57:07.919 default [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 46 ms. Found 0 Redis repository interfaces.
+2023-08-12 16:57:08.652 default [restartedMain] INFO  io.undertow.servlet - Initializing Spring embedded WebApplicationContext
+2023-08-12 16:57:08.652 default [restartedMain] INFO  o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1767 ms
+2023-08-12 16:57:10.433 default [restartedMain] INFO  o.s.b.d.autoconfigure.OptionalLiveReloadServer - LiveReload server is running on port 35729
+2023-08-12 16:57:10.480 default [restartedMain] INFO  org.xnio - XNIO version 3.8.8.Final
+2023-08-12 16:57:10.490 default [restartedMain] INFO  org.xnio.nio - XNIO NIO Implementation Version 3.8.8.Final
+2023-08-12 16:57:10.573 default [restartedMain] INFO  org.jboss.threads - JBoss Threads version 3.5.0.Final
+2023-08-12 16:57:10.612 default [restartedMain] INFO  io.undertow - starting server: Undertow - 2.3.7.Final
+2023-08-12 16:57:10.664 default [restartedMain] INFO  o.s.boot.web.embedded.undertow.UndertowWebServer - Undertow started on port(s) 8899 (http)
+2023-08-12 16:57:10.679 default [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication - Started DataAnalysisApplication in 4.353 seconds (process running for 6.057)
+2023-08-12 16:57:11.512 default [scheduling-1] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
+2023-08-12 16:57:11.732 default [scheduling-1] INFO  com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@5c27ac67
+2023-08-12 16:57:11.736 default [scheduling-1] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
+2023-08-12 16:57:20.681 default [scheduling-1] INFO  c.s.analysis.infrastructure.task.NonTradingDayTask - start cacheNonTradingDays
+2023-08-12 16:57:20.751 default [scheduling-1] INFO  c.s.analysis.infrastructure.task.NonTradingDayTask - finish cacheNonTradingDays
+2023-08-12 16:59:44.427 default [SpringApplicationShutdownHook] INFO  io.undertow - stopping server: Undertow - 2.3.7.Final
+2023-08-12 16:59:44.455 default [SpringApplicationShutdownHook] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
+2023-08-12 16:59:44.461 default [SpringApplicationShutdownHook] INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed.
+2023-08-12 16:59:48.726 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplicationcom.smppw.analysis.DataAnalysisApplication:51   - Starting DataAnalysisApplication using Java 17.0.5 with PID 235212 (D:\Documents\workspace\idea\data-analysis\target\classes started by Administrator in D:\Documents\workspace\idea\data-analysis)
+2023-08-12 16:59:48.728 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplicationcom.smppw.analysis.DataAnalysisApplication:632  - No active profile set, falling back to 1 default profile: "default"
+2023-08-12 16:59:48.785 [restartedMain] INFO  o.s.b.d.env.DevToolsPropertyDefaultsPostProcessororg.springframework.boot.devtools.env.DevToolsPropertyDefaultsPostProcessor:250  - Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
+2023-08-12 16:59:48.785 [restartedMain] INFO  o.s.b.d.env.DevToolsPropertyDefaultsPostProcessororg.springframework.boot.devtools.env.DevToolsPropertyDefaultsPostProcessor:250  - For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
+2023-08-12 16:59:49.749 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegateorg.springframework.data.repository.config.RepositoryConfigurationDelegate:291  - Multiple Spring Data modules found, entering strict repository configuration mode
+2023-08-12 16:59:49.752 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegateorg.springframework.data.repository.config.RepositoryConfigurationDelegate:138  - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
+2023-08-12 16:59:49.812 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegateorg.springframework.data.repository.config.RepositoryConfigurationDelegate:208  - Finished Spring Data repository scanning in 43 ms. Found 0 Redis repository interfaces.
+2023-08-12 16:59:50.479 [restartedMain] INFO  io.undertow.servletio.undertow.servlet:372  - Initializing Spring embedded WebApplicationContext
+2023-08-12 16:59:50.480 [restartedMain] INFO  o.s.b.w.s.c.ServletWebServerApplicationContextorg.springframework.boot.web.servlet.context.ServletWebServerApplicationContext:291  - Root WebApplicationContext: initialization completed in 1694 ms
+2023-08-12 16:59:52.160 [restartedMain] INFO  o.s.b.d.autoconfigure.OptionalLiveReloadServerorg.springframework.boot.devtools.autoconfigure.OptionalLiveReloadServer:59   - LiveReload server is running on port 35729
+2023-08-12 16:59:52.203 [restartedMain] INFO  io.undertowio.undertow:120  - starting server: Undertow - 2.3.7.Final
+2023-08-12 16:59:52.209 [restartedMain] INFO  org.xnioorg.xnio:95   - XNIO version 3.8.8.Final
+2023-08-12 16:59:52.215 [restartedMain] INFO  org.xnio.nioorg.xnio.nio:58   - XNIO NIO Implementation Version 3.8.8.Final
+2023-08-12 16:59:52.277 [restartedMain] INFO  org.jboss.threadsorg.jboss.threads:55   - JBoss Threads version 3.5.0.Final
+2023-08-12 16:59:52.346 [restartedMain] INFO  o.s.boot.web.embedded.undertow.UndertowWebServerorg.springframework.boot.web.embedded.undertow.UndertowWebServer:121  - Undertow started on port(s) 8899 (http)
+2023-08-12 16:59:52.360 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplicationcom.smppw.analysis.DataAnalysisApplication:57   - Started DataAnalysisApplication in 4.097 seconds (process running for 5.803)
+2023-08-12 16:59:53.191 [scheduling-1] INFO  com.zaxxer.hikari.HikariDataSourcecom.zaxxer.hikari.HikariDataSource:110  - HikariPool-1 - Starting...
+2023-08-12 16:59:53.437 [scheduling-1] INFO  com.zaxxer.hikari.pool.HikariPoolcom.zaxxer.hikari.pool.HikariPool:565  - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@9114ec5
+2023-08-12 16:59:53.439 [scheduling-1] INFO  com.zaxxer.hikari.HikariDataSourcecom.zaxxer.hikari.HikariDataSource:123  - HikariPool-1 - Start completed.
+2023-08-12 17:00:02.361 [scheduling-1] INFO  c.s.analysis.infrastructure.task.NonTradingDayTaskcom.smppw.analysis.infrastructure.task.NonTradingDayTask:27   - start cacheNonTradingDays
+2023-08-12 17:00:02.445 [scheduling-1] INFO  c.s.analysis.infrastructure.task.NonTradingDayTaskcom.smppw.analysis.infrastructure.task.NonTradingDayTask:31   - finish cacheNonTradingDays
+2023-08-12 17:00:14.439 [SpringApplicationShutdownHook] INFO  io.undertowio.undertow:259  - stopping server: Undertow - 2.3.7.Final
+2023-08-12 17:00:14.464 [SpringApplicationShutdownHook] INFO  com.zaxxer.hikari.HikariDataSourcecom.zaxxer.hikari.HikariDataSource:350  - HikariPool-1 - Shutdown initiated...
+2023-08-12 17:00:14.471 [SpringApplicationShutdownHook] INFO  com.zaxxer.hikari.HikariDataSourcecom.zaxxer.hikari.HikariDataSource:352  - HikariPool-1 - Shutdown completed.
+2023-08-12 17:00:19.691 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:51   - Starting DataAnalysisApplication using Java 17.0.5 with PID 234324 (D:\Documents\workspace\idea\data-analysis\target\classes started by Administrator in D:\Documents\workspace\idea\data-analysis)
+2023-08-12 17:00:19.696 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:632  - No active profile set, falling back to 1 default profile: "default"
+2023-08-12 17:00:19.777 [restartedMain] INFO  o.s.b.d.env.DevToolsPropertyDefaultsPostProcessor:250  - Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
+2023-08-12 17:00:19.779 [restartedMain] INFO  o.s.b.d.env.DevToolsPropertyDefaultsPostProcessor:250  - For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
+2023-08-12 17:00:20.779 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate:291  - Multiple Spring Data modules found, entering strict repository configuration mode
+2023-08-12 17:00:20.782 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate:138  - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
+2023-08-12 17:00:20.845 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate:208  - Finished Spring Data repository scanning in 44 ms. Found 0 Redis repository interfaces.
+2023-08-12 17:00:21.574 [restartedMain] INFO  io.undertow.servlet:372  - Initializing Spring embedded WebApplicationContext
+2023-08-12 17:00:21.575 [restartedMain] INFO  o.s.b.w.s.c.ServletWebServerApplicationContext:291  - Root WebApplicationContext: initialization completed in 1795 ms
+2023-08-12 17:00:24.016 [restartedMain] INFO  o.s.b.d.autoconfigure.OptionalLiveReloadServer:59   - LiveReload server is running on port 35729
+2023-08-12 17:00:24.059 [restartedMain] INFO  io.undertow:120  - starting server: Undertow - 2.3.7.Final
+2023-08-12 17:00:24.066 [restartedMain] INFO  org.xnio:95   - XNIO version 3.8.8.Final
+2023-08-12 17:00:24.073 [restartedMain] INFO  org.xnio.nio:58   - XNIO NIO Implementation Version 3.8.8.Final
+2023-08-12 17:00:24.140 [restartedMain] INFO  org.jboss.threads:55   - JBoss Threads version 3.5.0.Final
+2023-08-12 17:00:24.219 [restartedMain] INFO  o.s.boot.web.embedded.undertow.UndertowWebServer:121  - Undertow started on port(s) 8899 (http)
+2023-08-12 17:00:24.247 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:57   - Started DataAnalysisApplication in 5.064 seconds (process running for 7.311)
+2023-08-12 17:00:25.079 [scheduling-1] INFO  com.zaxxer.hikari.HikariDataSource:110  - HikariPool-1 - Starting...
+2023-08-12 17:00:25.290 [scheduling-1] INFO  com.zaxxer.hikari.pool.HikariPool:565  - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@2eba04d6
+2023-08-12 17:00:25.293 [scheduling-1] INFO  com.zaxxer.hikari.HikariDataSource:123  - HikariPool-1 - Start completed.
+2023-08-12 17:00:34.254 [scheduling-1] INFO  c.s.analysis.infrastructure.task.NonTradingDayTask:27   - start cacheNonTradingDays
+2023-08-12 17:00:34.325 [scheduling-1] INFO  c.s.analysis.infrastructure.task.NonTradingDayTask:31   - finish cacheNonTradingDays
+2023-08-12 17:03:44.695 [SpringApplicationShutdownHook] INFO  io.undertow:259  - stopping server: Undertow - 2.3.7.Final
+2023-08-12 17:03:56.496 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:51   - Starting DataAnalysisApplication using Java 17.0.5 with PID 231516 (D:\Documents\workspace\idea\data-analysis\target\classes started by Administrator in D:\Documents\workspace\idea\data-analysis)
+2023-08-12 17:03:56.499 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:632  - No active profile set, falling back to 1 default profile: "default"
+2023-08-12 17:03:56.564 [restartedMain] INFO  o.s.b.d.env.DevToolsPropertyDefaultsPostProcessor:250  - Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
+2023-08-12 17:03:56.565 [restartedMain] INFO  o.s.b.d.env.DevToolsPropertyDefaultsPostProcessor:250  - For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
+2023-08-12 17:03:57.670 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate:291  - Multiple Spring Data modules found, entering strict repository configuration mode
+2023-08-12 17:03:57.673 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate:138  - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
+2023-08-12 17:03:57.762 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate:208  - Finished Spring Data repository scanning in 61 ms. Found 0 Redis repository interfaces.
+2023-08-12 17:03:58.563 [restartedMain] INFO  io.undertow.servlet:372  - Initializing Spring embedded WebApplicationContext
+2023-08-12 17:03:58.564 [restartedMain] INFO  o.s.b.w.s.c.ServletWebServerApplicationContext:291  - Root WebApplicationContext: initialization completed in 1997 ms
+2023-08-12 17:04:00.250 [restartedMain] INFO  o.s.b.d.autoconfigure.OptionalLiveReloadServer:59   - LiveReload server is running on port 35729
+2023-08-12 17:04:00.290 [restartedMain] INFO  io.undertow:120  - starting server: Undertow - 2.3.7.Final
+2023-08-12 17:04:00.298 [restartedMain] INFO  org.xnio:95   - XNIO version 3.8.8.Final
+2023-08-12 17:04:00.305 [restartedMain] INFO  org.xnio.nio:58   - XNIO NIO Implementation Version 3.8.8.Final
+2023-08-12 17:04:00.372 [restartedMain] INFO  org.jboss.threads:55   - JBoss Threads version 3.5.0.Final
+2023-08-12 17:04:00.443 [restartedMain] INFO  o.s.boot.web.embedded.undertow.UndertowWebServer:121  - Undertow started on port(s) 8899 (http)
+2023-08-12 17:04:00.458 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:57   - Started DataAnalysisApplication in 4.487 seconds (process running for 6.393)
+2023-08-12 17:04:01.367 [scheduling-1] INFO  com.zaxxer.hikari.HikariDataSource:110  - HikariPool-1 - Starting...
+2023-08-12 17:04:01.594 [scheduling-1] INFO  com.zaxxer.hikari.pool.HikariPool:565  - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@6e3550a7
+2023-08-12 17:04:01.597 [scheduling-1] INFO  com.zaxxer.hikari.HikariDataSource:123  - HikariPool-1 - Start completed.
+2023-08-12 17:04:10.462 [scheduling-1] INFO  c.s.analysis.infrastructure.task.NonTradingDayTask:27   - start cacheNonTradingDays
+2023-08-12 17:04:10.574 [scheduling-1] INFO  c.s.analysis.infrastructure.task.NonTradingDayTask:31   - finish cacheNonTradingDays
+2023-08-12 17:04:54.287 [XNIO-1 task-2] INFO  io.undertow.servlet:372  - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2023-08-12 17:04:54.288 [XNIO-1 task-2] INFO  org.springframework.web.servlet.DispatcherServlet:532  - Initializing Servlet 'dispatcherServlet'
+2023-08-12 17:04:54.289 [XNIO-1 task-2] INFO  org.springframework.web.servlet.DispatcherServlet:554  - Completed initialization in 1 ms
+2023-08-12 17:08:03.637 [File Watcher] INFO  o.s.b.d.a.LocalDevToolsAutoConfiguration$RestartingClassPathChangeChangedEventListener:211  - Restarting due to 1 class path change (0 additions, 1 deletion, 0 modifications)
+2023-08-12 17:08:03.648 [Thread-5] INFO  io.undertow:259  - stopping server: Undertow - 2.3.7.Final
+2023-08-12 17:08:03.652 [Thread-5] INFO  io.undertow.servlet:372  - Destroying Spring FrameworkServlet 'dispatcherServlet'
+2023-08-12 17:08:03.791 [Thread-5] INFO  com.zaxxer.hikari.HikariDataSource:350  - HikariPool-1 - Shutdown initiated...
+2023-08-12 17:08:03.805 [Thread-5] INFO  com.zaxxer.hikari.HikariDataSource:352  - HikariPool-1 - Shutdown completed.
+2023-08-12 17:08:03.945 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:51   - Starting DataAnalysisApplication using Java 17.0.5 with PID 231516 (D:\Documents\workspace\idea\data-analysis\target\classes started by Administrator in D:\Documents\workspace\idea\data-analysis)
+2023-08-12 17:08:03.946 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:632  - No active profile set, falling back to 1 default profile: "default"
+2023-08-12 17:08:04.043 [restartedMain] INFO  o.s.b.a.logging.ConditionEvaluationReportLogger:82   - 
+
+Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
+2023-08-12 17:08:05.879 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:51   - Starting DataAnalysisApplication using Java 17.0.5 with PID 231516 (D:\Documents\workspace\idea\data-analysis\target\classes started by Administrator in D:\Documents\workspace\idea\data-analysis)
+2023-08-12 17:08:05.880 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:632  - No active profile set, falling back to 1 default profile: "default"
+2023-08-12 17:08:06.341 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate:291  - Multiple Spring Data modules found, entering strict repository configuration mode
+2023-08-12 17:08:06.341 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate:138  - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
+2023-08-12 17:08:06.366 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate:208  - Finished Spring Data repository scanning in 24 ms. Found 0 Redis repository interfaces.
+2023-08-12 17:08:06.639 [restartedMain] INFO  io.undertow.servlet:372  - Initializing Spring embedded WebApplicationContext
+2023-08-12 17:08:06.641 [restartedMain] INFO  o.s.b.w.s.c.ServletWebServerApplicationContext:291  - Root WebApplicationContext: initialization completed in 755 ms
+2023-08-12 17:08:07.522 [restartedMain] INFO  o.s.b.d.autoconfigure.OptionalLiveReloadServer:59   - LiveReload server is running on port 35729
+2023-08-12 17:08:07.535 [restartedMain] INFO  io.undertow:120  - starting server: Undertow - 2.3.7.Final
+2023-08-12 17:08:07.559 [restartedMain] INFO  o.s.boot.web.embedded.undertow.UndertowWebServer:121  - Undertow started on port(s) 8899 (http)
+2023-08-12 17:08:07.563 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:57   - Started DataAnalysisApplication in 1.746 seconds (process running for 253.498)
+2023-08-12 17:08:07.566 [restartedMain] INFO  o.s.b.d.a.ConditionEvaluationDeltaLoggingListener:63   - Condition evaluation unchanged
+2023-08-12 17:08:08.369 [scheduling-1] INFO  com.zaxxer.hikari.HikariDataSource:110  - HikariPool-2 - Starting...
+2023-08-12 17:08:08.488 [scheduling-1] INFO  com.zaxxer.hikari.pool.HikariPool:565  - HikariPool-2 - Added connection com.mysql.cj.jdbc.ConnectionImpl@2aa8a61
+2023-08-12 17:08:08.488 [scheduling-1] INFO  com.zaxxer.hikari.HikariDataSource:123  - HikariPool-2 - Start completed.
+2023-08-12 17:08:17.576 [scheduling-1] INFO  c.s.analysis.infrastructure.task.NonTradingDayTask:27   - start cacheNonTradingDays
+2023-08-12 17:08:17.690 [scheduling-1] INFO  c.s.analysis.infrastructure.task.NonTradingDayTask:31   - finish cacheNonTradingDays
+2023-08-12 17:08:20.100 [XNIO-2 task-2] INFO  io.undertow.servlet:372  - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2023-08-12 17:08:20.100 [XNIO-2 task-2] INFO  org.springframework.web.servlet.DispatcherServlet:532  - Initializing Servlet 'dispatcherServlet'
+2023-08-12 17:08:20.102 [XNIO-2 task-2] INFO  org.springframework.web.servlet.DispatcherServlet:554  - Completed initialization in 2 ms
+2023-08-12 17:10:33.509 [SpringApplicationShutdownHook] INFO  io.undertow:259  - stopping server: Undertow - 2.3.7.Final
+2023-08-12 17:10:33.511 [SpringApplicationShutdownHook] INFO  io.undertow.servlet:372  - Destroying Spring FrameworkServlet 'dispatcherServlet'
+2023-08-12 17:13:37.128 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:51   - Starting DataAnalysisApplication using Java 17.0.5 with PID 229868 (D:\Documents\workspace\idea\data-analysis\target\classes started by Administrator in D:\Documents\workspace\idea\data-analysis)
+2023-08-12 17:13:37.131 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:632  - No active profile set, falling back to 1 default profile: "default"
+2023-08-12 17:13:37.194 [restartedMain] INFO  o.s.b.d.env.DevToolsPropertyDefaultsPostProcessor:250  - Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
+2023-08-12 17:13:37.195 [restartedMain] INFO  o.s.b.d.env.DevToolsPropertyDefaultsPostProcessor:250  - For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
+2023-08-12 17:13:38.115 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate:291  - Multiple Spring Data modules found, entering strict repository configuration mode
+2023-08-12 17:13:38.117 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate:138  - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
+2023-08-12 17:13:38.176 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate:208  - Finished Spring Data repository scanning in 42 ms. Found 0 Redis repository interfaces.
+2023-08-12 17:13:38.859 [restartedMain] INFO  io.undertow.servlet:372  - Initializing Spring embedded WebApplicationContext
+2023-08-12 17:13:38.859 [restartedMain] INFO  o.s.b.w.s.c.ServletWebServerApplicationContext:291  - Root WebApplicationContext: initialization completed in 1663 ms
+2023-08-12 17:13:40.592 [restartedMain] INFO  o.s.b.d.autoconfigure.OptionalLiveReloadServer:59   - LiveReload server is running on port 35729
+2023-08-12 17:13:40.632 [restartedMain] INFO  io.undertow:120  - starting server: Undertow - 2.3.7.Final
+2023-08-12 17:13:40.638 [restartedMain] INFO  org.xnio:95   - XNIO version 3.8.8.Final
+2023-08-12 17:13:40.646 [restartedMain] INFO  org.xnio.nio:58   - XNIO NIO Implementation Version 3.8.8.Final
+2023-08-12 17:13:40.712 [restartedMain] INFO  org.jboss.threads:55   - JBoss Threads version 3.5.0.Final
+2023-08-12 17:13:40.782 [restartedMain] INFO  o.s.boot.web.embedded.undertow.UndertowWebServer:121  - Undertow started on port(s) 8899 (http)
+2023-08-12 17:13:40.797 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:57   - Started DataAnalysisApplication in 4.142 seconds (process running for 5.849)
+2023-08-12 17:13:41.620 [scheduling-1] INFO  com.zaxxer.hikari.HikariDataSource:110  - HikariPool-1 - Starting...
+2023-08-12 17:13:41.821 [scheduling-1] INFO  com.zaxxer.hikari.pool.HikariPool:565  - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@3e5fa335
+2023-08-12 17:13:41.827 [scheduling-1] INFO  com.zaxxer.hikari.HikariDataSource:123  - HikariPool-1 - Start completed.
+2023-08-12 17:13:50.804 [scheduling-1] INFO  c.s.analysis.infrastructure.task.NonTradingDayTask:27   - start cacheNonTradingDays
+2023-08-12 17:13:50.875 [scheduling-1] INFO  c.s.analysis.infrastructure.task.NonTradingDayTask:31   - finish cacheNonTradingDays
+2023-08-12 17:14:10.602 [XNIO-1 task-2] INFO  io.undertow.servlet:372  - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2023-08-12 17:14:10.602 [XNIO-1 task-2] INFO  org.springframework.web.servlet.DispatcherServlet:532  - Initializing Servlet 'dispatcherServlet'
+2023-08-12 17:14:10.604 [XNIO-1 task-2] INFO  org.springframework.web.servlet.DispatcherServlet:554  - Completed initialization in 2 ms
+2023-08-12 17:15:18.896 [SpringApplicationShutdownHook] INFO  io.undertow:259  - stopping server: Undertow - 2.3.7.Final
+2023-08-12 17:15:18.912 [SpringApplicationShutdownHook] INFO  io.undertow.servlet:372  - Destroying Spring FrameworkServlet 'dispatcherServlet'
+2023-08-12 17:15:18.935 [SpringApplicationShutdownHook] INFO  com.zaxxer.hikari.HikariDataSource:350  - HikariPool-1 - Shutdown initiated...
+2023-08-12 17:15:18.943 [SpringApplicationShutdownHook] INFO  com.zaxxer.hikari.HikariDataSource:352  - HikariPool-1 - Shutdown completed.
+2023-08-12 17:15:30.155 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:51   - Starting DataAnalysisApplication using Java 17.0.5 with PID 232600 (D:\Documents\workspace\idea\data-analysis\target\classes started by Administrator in D:\Documents\workspace\idea\data-analysis)
+2023-08-12 17:15:30.158 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:632  - No active profile set, falling back to 1 default profile: "default"
+2023-08-12 17:15:30.217 [restartedMain] INFO  o.s.b.d.env.DevToolsPropertyDefaultsPostProcessor:250  - Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
+2023-08-12 17:15:30.218 [restartedMain] INFO  o.s.b.d.env.DevToolsPropertyDefaultsPostProcessor:250  - For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
+2023-08-12 17:15:31.063 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate:291  - Multiple Spring Data modules found, entering strict repository configuration mode
+2023-08-12 17:15:31.065 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate:138  - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
+2023-08-12 17:15:31.124 [restartedMain] INFO  o.s.d.r.config.RepositoryConfigurationDelegate:208  - Finished Spring Data repository scanning in 41 ms. Found 0 Redis repository interfaces.
+2023-08-12 17:15:31.784 [restartedMain] INFO  io.undertow.servlet:372  - Initializing Spring embedded WebApplicationContext
+2023-08-12 17:15:31.784 [restartedMain] INFO  o.s.b.w.s.c.ServletWebServerApplicationContext:291  - Root WebApplicationContext: initialization completed in 1565 ms
+2023-08-12 17:15:33.390 [restartedMain] INFO  o.s.b.d.autoconfigure.OptionalLiveReloadServer:59   - LiveReload server is running on port 35729
+2023-08-12 17:15:33.430 [restartedMain] INFO  io.undertow:120  - starting server: Undertow - 2.3.7.Final
+2023-08-12 17:15:33.436 [restartedMain] INFO  org.xnio:95   - XNIO version 3.8.8.Final
+2023-08-12 17:15:33.443 [restartedMain] INFO  org.xnio.nio:58   - XNIO NIO Implementation Version 3.8.8.Final
+2023-08-12 17:15:33.514 [restartedMain] INFO  org.jboss.threads:55   - JBoss Threads version 3.5.0.Final
+2023-08-12 17:15:33.568 [restartedMain] INFO  o.s.boot.web.embedded.undertow.UndertowWebServer:121  - Undertow started on port(s) 8899 (http)
+2023-08-12 17:15:33.581 [restartedMain] INFO  com.smppw.analysis.DataAnalysisApplication:57   - Started DataAnalysisApplication in 3.879 seconds (process running for 5.374)
+2023-08-12 17:15:34.510 [scheduling-1] INFO  com.zaxxer.hikari.HikariDataSource:110  - HikariPool-1 - Starting...
+2023-08-12 17:15:34.728 [scheduling-1] INFO  com.zaxxer.hikari.pool.HikariPool:565  - HikariPool-1 - Added connection com.mysql.cj.jdbc.ConnectionImpl@2eba04d6
+2023-08-12 17:15:34.732 [scheduling-1] INFO  com.zaxxer.hikari.HikariDataSource:123  - HikariPool-1 - Start completed.
+2023-08-12 17:15:43.588 [scheduling-1] INFO  c.s.analysis.infrastructure.task.NonTradingDayTask:27   - start cacheNonTradingDays
+2023-08-12 17:15:43.668 [scheduling-1] INFO  c.s.analysis.infrastructure.task.NonTradingDayTask:31   - finish cacheNonTradingDays
+2023-08-12 17:16:42.843 [XNIO-1 task-2] INFO  io.undertow.servlet:372  - Initializing Spring DispatcherServlet 'dispatcherServlet'
+2023-08-12 17:16:42.843 [XNIO-1 task-2] INFO  org.springframework.web.servlet.DispatcherServlet:532  - Initializing Servlet 'dispatcherServlet'
+2023-08-12 17:16:42.845 [XNIO-1 task-2] INFO  org.springframework.web.servlet.DispatcherServlet:554  - Completed initialization in 2 ms
+2023-08-12 17:20:44.725 [SpringApplicationShutdownHook] INFO  io.undertow:259  - stopping server: Undertow - 2.3.7.Final
+2023-08-12 17:20:44.729 [SpringApplicationShutdownHook] INFO  io.undertow.servlet:372  - Destroying Spring FrameworkServlet 'dispatcherServlet'

+ 11 - 0
log/warn.log

@@ -0,0 +1,11 @@
+2023-08-12 16:55:14.323 WARN  io.undertow.websockets.jsr - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2023-08-12 16:57:08.624 default [restartedMain] WARN  io.undertow.websockets.jsr - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2023-08-12 16:59:50.453 [restartedMain] WARN  io.undertow.websockets.jsrio.undertow.websockets.jsr:68   - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2023-08-12 17:00:21.548 [restartedMain] WARN  io.undertow.websockets.jsr:68   - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2023-08-12 17:03:58.538 [restartedMain] WARN  io.undertow.websockets.jsr:68   - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2023-08-12 17:08:04.040 [restartedMain] WARN  o.s.b.w.s.c.AnnotationConfigServletWebServerApplicationContext:616  - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanDefinitionStoreException: Failed to parse configuration class [com.smppw.analysis.DataAnalysisApplication]
+2023-08-12 17:08:06.635 [restartedMain] WARN  io.undertow.websockets.jsr:68   - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2023-08-12 17:13:38.834 [restartedMain] WARN  io.undertow.websockets.jsr:68   - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2023-08-12 17:15:18.751 [HikariPool-1 housekeeper] WARN  com.zaxxer.hikari.pool.HikariPool:804  - HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=1m797ms785µs200ns).
+2023-08-12 17:15:31.759 [restartedMain] WARN  io.undertow.websockets.jsr:68   - UT026010: Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be used
+2023-08-12 17:17:26.400 [HikariPool-1 housekeeper] WARN  com.zaxxer.hikari.pool.HikariPool:804  - HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=51s553ms729µs300ns).

+ 3 - 3
readme.md

@@ -84,10 +84,10 @@ springboot3+redis+mybatis的一个标的详情页通用服务
 ```
 ```
 
 
 ### TODO
 ### TODO
-- [ ] 1、基本信息缓存、净值缓存
+- [ ] 1、基本信息缓存、~~净值缓存~~
 - [ ] 2、所有标的基本信息获取逻辑重构
 - [ ] 2、所有标的基本信息获取逻辑重构
-- [ ] 3、统一返回和异常处理
-- [ ] 4、完善的日志记录
+- [x] 3、统一返回和异常处理
+- [x] 4、完善的日志记录
 - [ ] 5、接口参数签名校验
 - [ ] 5、接口参数签名校验
 - [ ] 6、接口文档
 - [ ] 6、接口文档
 - [ ] 7、风格评测接口重构
 - [ ] 7、风格评测接口重构

+ 7 - 3
src/main/java/com/smppw/analysis/client/FundPerformanceApi.java

@@ -25,9 +25,8 @@ public class FundPerformanceApi {
     }
     }
 
 
     @GetMapping("indicator")
     @GetMapping("indicator")
-    public ResultVo<Map<String, Object>> indicator(IndicatorReq req) {
-        Map<String, Object> data = this.service.calcIndicator(req);
-        return ResultVo.ok(data);
+    public Map<String, Object> indicator(IndicatorReq req) {
+        return this.service.calcIndicator(req);
     }
     }
 
 
     @GetMapping("trend")
     @GetMapping("trend")
@@ -83,4 +82,9 @@ public class FundPerformanceApi {
         Map<String, Object> data = this.service.rank(req);
         Map<String, Object> data = this.service.rank(req);
         return ResultVo.ok(data);
         return ResultVo.ok(data);
     }
     }
+
+    @GetMapping("str")
+    public String str() {
+        return "ok";
+    }
 }
 }

+ 2 - 9
src/main/java/com/smppw/analysis/domain/dao/nav/AbstractNavDao.java

@@ -1,7 +1,6 @@
 package com.smppw.analysis.domain.dao.nav;
 package com.smppw.analysis.domain.dao.nav;
 
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.map.MapUtil;
 import com.smppw.analysis.domain.dataobject.nav.BaseNavDO;
 import com.smppw.analysis.domain.dataobject.nav.BaseNavDO;
 import com.smppw.common.pojo.dto.NavDto;
 import com.smppw.common.pojo.dto.NavDto;
@@ -15,7 +14,7 @@ import java.util.stream.Collectors;
 /**
 /**
  * @author wangzaijun
  * @author wangzaijun
  * @date 2023/8/11 10:23
  * @date 2023/8/11 10:23
- * @description 抽象的净值查询接口,目前不加缓存(考虑在什么位置加缓存,以什么结构存储)
+ * @description 抽象的净值查询接口
  */
  */
 public abstract class AbstractNavDao<NAV extends BaseNavDO> implements NavDao {
 public abstract class AbstractNavDao<NAV extends BaseNavDO> implements NavDao {
     @Override
     @Override
@@ -24,13 +23,7 @@ public abstract class AbstractNavDao<NAV extends BaseNavDO> implements NavDao {
         if (CollUtil.isEmpty(secIds)) {
         if (CollUtil.isEmpty(secIds)) {
             return MapUtil.empty();
             return MapUtil.empty();
         }
         }
-        // 去重并保证顺序
-        List<String> refIds = ListUtil.list(true);
-        for (String secId : secIds) {
-            if (!refIds.contains(secId)) {
-                refIds.add(secId);
-            }
-        }
+        List<String> refIds = secIds.stream().distinct().collect(Collectors.toList());
         List<NAV> navList = this.listSecNav(refIds, startDate, endDate, curveTypeId, strategyId, secFrequencyMap);
         List<NAV> navList = this.listSecNav(refIds, startDate, endDate, curveTypeId, strategyId, secFrequencyMap);
         return this.convertToMap(navList);
         return this.convertToMap(navList);
     }
     }

+ 2 - 8
src/main/java/com/smppw/analysis/domain/manager/performance/AbstractPerformance.java

@@ -2,7 +2,6 @@ package com.smppw.analysis.domain.manager.performance;
 
 
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.text.CharSequenceUtil;
 import cn.hutool.core.text.CharSequenceUtil;
-import cn.hutool.core.util.StrUtil;
 import com.smppw.analysis.domain.dto.performance.Params;
 import com.smppw.analysis.domain.dto.performance.Params;
 import com.smppw.analysis.domain.service.BaseIndicatorServiceV2;
 import com.smppw.analysis.domain.service.BaseIndicatorServiceV2;
 import com.smppw.analysis.domain.service.BaseInfoService;
 import com.smppw.analysis.domain.service.BaseInfoService;
@@ -73,13 +72,8 @@ public abstract class AbstractPerformance<P extends Params, R> implements Perfor
 
 
     @Override
     @Override
     public R execute(P params) {
     public R execute(P params) {
-        try {
-            this.checkParams(params);
-            return this.bizHandle(params);
-        } catch (Exception e) {
-            this.logger.warn(StrUtil.format("接口请求错误!{}", e.getMessage()));
-        }
-        return null;
+        this.checkParams(params);
+        return this.bizHandle(params);
     }
     }
 
 
     protected void checkParams(P params) {
     protected void checkParams(P params) {

+ 1 - 1
src/main/java/com/smppw/analysis/domain/service/impl/BaseInfoServiceImpl.java

@@ -221,7 +221,7 @@ public class BaseInfoServiceImpl implements BaseInfoService, ApplicationContextA
             return MapUtil.empty();
             return MapUtil.empty();
         }
         }
         int size = allSecIdList.size();
         int size = allSecIdList.size();
-        String key = RedisConst.INFO_NAME;
+        String key = RedisConst.SEC_NAME;
         Map<String, Object> hget = this.cacheGateway.hget(key);
         Map<String, Object> hget = this.cacheGateway.hget(key);
         if (MapUtil.isEmpty(hget)) {
         if (MapUtil.isEmpty(hget)) {
             hget = MapUtil.empty();
             hget = MapUtil.empty();

+ 46 - 0
src/main/java/com/smppw/analysis/infrastructure/components/GlobalErrorController.java

@@ -0,0 +1,46 @@
+package com.smppw.analysis.infrastructure.components;
+
+import com.smppw.analysis.infrastructure.exception.ErrorInfo;
+import com.smppw.analysis.infrastructure.exception.ErrorInfoBuilder;
+import com.smppw.common.pojo.ResultVo;
+import jakarta.servlet.http.HttpServletRequest;
+import org.springframework.boot.web.servlet.error.ErrorController;
+import org.springframework.http.MediaType;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.servlet.ModelAndView;
+
+/**
+ * @author wangzaijun
+ * @date 2023/8/12 15:46
+ * @description 全局的错误信息处理
+ */
+@Controller
+@RequestMapping("${server.error.path:/error}")
+public class GlobalErrorController implements ErrorController {
+    private final static String DEFAULT_ERROR_VIEW = "error";//错误信息页
+    private final ErrorInfoBuilder errorInfoBuilder;
+
+    public GlobalErrorController(ErrorInfoBuilder errorInfoBuilder) {
+        this.errorInfoBuilder = errorInfoBuilder;
+    }
+
+    /**
+     * 情况1:若预期返回类型为text/html,则返回错误信息页(View).
+     */
+    @RequestMapping(produces = MediaType.TEXT_HTML_VALUE)
+    public ModelAndView errorHtml(HttpServletRequest request) {
+        return new ModelAndView(DEFAULT_ERROR_VIEW, "error", errorInfoBuilder.getErrorInfo(request));
+    }
+
+    /**
+     * 情况2:其它预期类型 则返回详细的错误信息(JSON).
+     */
+    @RequestMapping
+    @ResponseBody
+    public ResultVo<?> error(HttpServletRequest request) {
+        ErrorInfo errorInfo = errorInfoBuilder.getErrorInfo(request);
+        return ResultVo.fail(errorInfo.getStatusCode(), errorInfo.getError());
+    }
+}

+ 52 - 0
src/main/java/com/smppw/analysis/infrastructure/components/GlobalResponseBodyAdvice.java

@@ -0,0 +1,52 @@
+package com.smppw.analysis.infrastructure.components;
+
+import cn.hutool.json.JSONUtil;
+import com.smppw.common.pojo.ResultVo;
+import org.springframework.core.MethodParameter;
+import org.springframework.http.MediaType;
+import org.springframework.http.converter.HttpMessageConverter;
+import org.springframework.http.server.ServerHttpRequest;
+import org.springframework.http.server.ServerHttpResponse;
+import org.springframework.lang.NonNull;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
+
+import java.lang.reflect.AnnotatedElement;
+import java.util.Arrays;
+
+/**
+ * @author wangzaijun
+ * @date 2023/8/12 16:39
+ * @description 全局的异常处理
+ */
+@RestControllerAdvice
+public class GlobalResponseBodyAdvice implements ResponseBodyAdvice<Object> {
+    private static final Class[] ANNOTATIONS = new Class[]{
+            RequestMapping.class,
+            GetMapping.class,
+            PostMapping.class,
+            DeleteMapping.class,
+            PutMapping.class
+    };
+
+    @Override
+    public boolean supports(MethodParameter returnType, @NonNull Class<? extends HttpMessageConverter<?>> converterType) {
+        AnnotatedElement element = returnType.getAnnotatedElement();
+        return Arrays.stream(ANNOTATIONS).anyMatch((annotation) -> annotation.isAnnotation() && element.isAnnotationPresent(annotation));
+    }
+
+    @Override
+    public Object beforeBodyWrite(Object body, @NonNull MethodParameter returnType, @NonNull MediaType selectedContentType,
+                                  @NonNull Class<? extends HttpMessageConverter<?>> selectedConverterType, @NonNull ServerHttpRequest request, @NonNull ServerHttpResponse response) {
+        if (body instanceof String) {
+            // 当响应体是String类型时
+            return JSONUtil.toJsonStr(ResultVo.ok(body));
+        }
+        if (body instanceof ResultVo<?>) {
+            // 已经包装过的结果无需再次包装
+            return body;
+        }
+        // 对响应体进行包装
+        return ResultVo.ok(body);
+    }
+}

+ 15 - 1
src/main/java/com/smppw/analysis/infrastructure/consts/RedisConst.java

@@ -35,7 +35,21 @@ public final class RedisConst {
      */
      */
     public static final String PORTFOLIO_NAV_TASK_KEY = "portfolio:nav:task:";
     public static final String PORTFOLIO_NAV_TASK_KEY = "portfolio:nav:task:";
 
 
-    public static final String INFO_NAME = "info:secName";
+    /**
+     * 标的基本信息缓存key
+     * 建议缓存8小时
+     */
+    public static final String INFO_NAME = "sec:info";
+    /**
+     * 标的id名称映射缓存key
+     * 建议缓存一天
+     */
+    public static final String SEC_NAME = "sec:name";
+    /**
+     * 标的净值缓存key
+     * 建议缓存8小时
+     */
+    public static final String SEC_NAV = "sec:nav";
 
 
 
 
     // -------------- 基金持仓分析key 和 超时时间 -------------------------------
     // -------------- 基金持仓分析key 和 超时时间 -------------------------------

+ 0 - 23
src/main/java/com/smppw/analysis/infrastructure/exception/DataException.java

@@ -1,23 +0,0 @@
-package com.smppw.analysis.infrastructure.exception;
-
-import com.smppw.common.pojo.enums.status.ResultCode;
-
-/**
- * @author Rain
- * @date 2023/4/6 18:02
- * @description
- */
-public class DataException extends RuntimeException {
-
-    private static final long serialVersionUID = 8706998320785170500L;
-    private final int code = ResultCode.DATA_PRE_SHOW_MESSAGE_ERROR.getCode();
-
-    public DataException(String message) {
-        super(message);
-    }
-
-
-    public int getCode() {
-        return code;
-    }
-}

+ 38 - 0
src/main/java/com/smppw/analysis/infrastructure/exception/ErrorInfo.java

@@ -0,0 +1,38 @@
+package com.smppw.analysis.infrastructure.exception;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @author wangzaijun
+ * @date 2023/8/12 15:51
+ * @description 通用的错误信息
+ */
+@Setter
+@Getter
+public class ErrorInfo {
+    /**
+     * 发生时间
+     */
+    private String time;
+    /**
+     * 访问Url
+     */
+    private String url;
+    /**
+     * 错误类型
+     */
+    private String error;
+    /**
+     * 状态码
+     */
+    private int statusCode;
+    /**
+     * 状态码
+     */
+    private String reasonPhrase;
+    /**
+     * 错误的堆栈轨迹
+     */
+    private String stackTrace;
+}

+ 170 - 0
src/main/java/com/smppw/analysis/infrastructure/exception/ErrorInfoBuilder.java

@@ -0,0 +1,170 @@
+package com.smppw.analysis.infrastructure.exception;
+
+import cn.hutool.core.util.StrUtil;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.boot.autoconfigure.web.ErrorProperties;
+import org.springframework.boot.autoconfigure.web.ServerProperties;
+import org.springframework.core.Ordered;
+import org.springframework.http.HttpStatus;
+import org.springframework.lang.Nullable;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.HandlerExceptionResolver;
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.util.WebUtils;
+
+import java.io.PrintWriter;
+import java.io.StringWriter;
+import java.time.LocalDateTime;
+
+/**
+ * @author wangzaijun
+ * @date 2023/8/12 16:23
+ * @description 错误信息构造工具
+ */
+@Component
+public class ErrorInfoBuilder implements HandlerExceptionResolver, Ordered {
+    /**
+     * 错误KEY
+     */
+    private final static String ERROR_NAME = "ppw.error";
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+    /**
+     * 错误配置(ErrorConfiguration)
+     */
+    private final ErrorProperties errorProperties;
+
+    /**
+     * 错误构造器 (Constructor) 传递配置属性:server.xx -> server.error.xx
+     */
+    public ErrorInfoBuilder(ServerProperties serverProperties) {
+        this.errorProperties = serverProperties.getError();
+    }
+
+    /**
+     * 构建错误信息.(ErrorInfo)
+     */
+    public ErrorInfo getErrorInfo(HttpServletRequest request) {
+        return getErrorInfo(request, getError(request));
+    }
+
+    /**
+     * 构建错误信息.(ErrorInfo)
+     */
+    public ErrorInfo getErrorInfo(HttpServletRequest request, Throwable error) {
+        String url = request.getAttribute(WebUtils.ERROR_REQUEST_URI_ATTRIBUTE).toString();
+        ErrorInfo errorInfo = new ErrorInfo();
+        errorInfo.setTime(LocalDateTime.now().toString());
+        errorInfo.setUrl(url);
+        errorInfo.setError(error.getMessage());
+        errorInfo.setStatusCode(getHttpStatus(request).value());
+        errorInfo.setReasonPhrase(getHttpStatus(request).getReasonPhrase());
+        errorInfo.setStackTrace(getStackTraceInfo(error, isIncludeStackTrace(request)));
+        logger.error(StrUtil.format("{} 接口请求错误:{}", url, errorInfo.getError()));
+        return errorInfo;
+    }
+
+    /**
+     * 获取错误.(Error/Exception)
+     *
+     * @see org.springframework.boot.web.servlet.error.DefaultErrorAttributes #addErrorDetails
+     */
+    public Throwable getError(HttpServletRequest request) {
+        //根据HandlerExceptionResolver接口方法来获取错误.
+        Throwable error = (Throwable) request.getAttribute(ERROR_NAME);
+        //根据Request对象获取错误.
+        if (error == null) {
+            error = (Throwable) request.getAttribute(WebUtils.ERROR_EXCEPTION_ATTRIBUTE);
+        }
+        //当获取错误非空,取出RootCause.
+        if (error != null) {
+            while (error instanceof ServletException && error.getCause() != null) {
+                error = error.getCause();
+            }
+        } else {
+            //当获取错误为null,此时我们设置错误信息即可.
+            String message = (String) request.getAttribute(WebUtils.ERROR_MESSAGE_ATTRIBUTE);
+            if (StringUtils.isEmpty(message)) {
+                HttpStatus status = getHttpStatus(request);
+                message = "Unknown Exception But " + status.value() + " " + status.getReasonPhrase();
+            }
+            error = new Exception(message);
+        }
+        return error;
+    }
+
+    /**
+     * 获取通信状态(HttpStatus)
+     *
+     * @see org.springframework.boot.autoconfigure.web.servlet.error.AbstractErrorController #getStatus
+     */
+    public HttpStatus getHttpStatus(HttpServletRequest request) {
+        Integer statusCode = (Integer) request.getAttribute(WebUtils.ERROR_STATUS_CODE_ATTRIBUTE);
+        try {
+            return statusCode != null ? HttpStatus.valueOf(statusCode) : HttpStatus.INTERNAL_SERVER_ERROR;
+        } catch (Exception ex) {
+            return HttpStatus.INTERNAL_SERVER_ERROR;
+        }
+    }
+
+    /**
+     * 获取堆栈轨迹(StackTrace)
+     *
+     * @see org.springframework.boot.web.servlet.error.DefaultErrorAttributes  #addStackTrace
+     */
+    public String getStackTraceInfo(Throwable error, boolean flag) {
+        if (!flag) {
+            return "omitted";
+        }
+        StringWriter stackTrace = new StringWriter();
+        error.printStackTrace(new PrintWriter(stackTrace));
+        stackTrace.flush();
+        return stackTrace.toString();
+    }
+
+    /**
+     * 判断是否包含堆栈轨迹.(isIncludeStackTrace)
+     *
+     * @see org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController #isIncludeStackTrace
+     */
+    public boolean isIncludeStackTrace(HttpServletRequest request) {
+
+        //读取错误配置(server.error.include-stacktrace=NEVER)
+        ErrorProperties.IncludeAttribute includeStacktrace = errorProperties.getIncludeStacktrace();
+
+        //情况1:若IncludeStacktrace为ALWAYS
+        if (includeStacktrace == ErrorProperties.IncludeAttribute.ALWAYS) {
+            return true;
+        }
+        //情况2:若请求参数含有trace
+        if (includeStacktrace == ErrorProperties.IncludeAttribute.ON_PARAM) {
+            String parameter = request.getParameter("trace");
+            return parameter != null && !"false".equalsIgnoreCase(parameter);
+        }
+        //情况3:其它情况
+        return false;
+    }
+
+    /**
+     * 保存错误/异常.
+     *
+     * @see org.springframework.web.servlet.DispatcherServlet #processHandlerException 进行选举HandlerExceptionResolver
+     */
+    @Override
+    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, @Nullable Object handler, Exception ex) {
+        request.setAttribute(ERROR_NAME, ex);
+        return null;
+    }
+
+    /**
+     * 提供优先级 或用于排序
+     */
+    @Override
+    public int getOrder() {
+        return Ordered.HIGHEST_PRECEDENCE;
+    }
+}

+ 57 - 32
src/main/resources/application-tob.yaml

@@ -19,39 +19,64 @@ server:
 
 
 spring:
 spring:
   datasource:
   datasource:
-    url: jdbc:mysql://47.112.140.222:3306/rz_hfdb_core?allowMultiQueries=true&useSSL=false&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull
-    username: rz_cm_master
-    password: TbLuENLK
-    driver-class-name: com.mysql.cj.jdbc.Driver
-    hikari:
-      pool-name: hfdb_core
-      # 连接池最大连接数,默认是10
-      maximum-pool-size: 10
-      # 此属性控制从池返回的连接的默认自动提交行为,默认值:true
-      auto-commit: true
-      # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟
-      max-lifetime: 900000
-      # 数据库连接超时时间,设置为300秒超时
-      connection-timeout: 300000
-      # keepalive time
-      keepalive-time: 60000
-#  data:
-#    redis:
-#      host: 192.168.1.28
-#      port: 6379
-#      password: twznW28grxzk
-#      timeout: 30000
-#      database: 1
-#      jedis:
-#        pool:
-#          max-idle: 6    #最大空闲数
-#          max-active: 10 #最大连接数
-#          min-idle: 2    #最小空闲数
+    core:
+      jdbc-url: jdbc:mysql://47.112.140.222:3306/rz_hfdb_core?allowMultiQueries=true&useSSL=false&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull
+      username: rz_cm_master
+      password: TbLuENLK
+      driver-class-name: com.mysql.cj.jdbc.Driver
+      hikari:
+        pool-name: hfdb_core
+        # 连接池最大连接数,默认是10
+        maximum-pool-size: 10
+        # 此属性控制从池返回的连接的默认自动提交行为,默认值:true
+        auto-commit: true
+        # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟
+        max-lifetime: 900000
+        # 数据库连接超时时间,设置为300秒超时
+        connection-timeout: 300000
+        # keepalive time
+        keepalive-time: 60000
+    mf:
+      jdbc-url: jdbc:mysql://47.112.140.222:3306/rz_mf_info?allowMultiQueries=true&useSSL=false&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull
+      username: rz_cm_master
+      password: TbLuENLK
+      driver-class-name: com.mysql.cj.jdbc.Driver
+      hikari:
+        pool-name: mf_info
+        # 连接池最大连接数,默认是10
+        maximum-pool-size: 10
+        # 此属性控制从池返回的连接的默认自动提交行为,默认值:true
+        auto-commit: true
+        # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟
+        max-lifetime: 900000
+        # 数据库连接超时时间,设置为300秒超时
+        connection-timeout: 300000
+        # keepalive time
+        keepalive-time: 60000
+  data:
+    redis:
+      host: 192.168.1.28
+      port: 6379
+      password: twznW28grxzk
+      timeout: 30000
+      database: 2
+      jedis:
+        pool:
+          max-idle: 6    #最大空闲数
+          max-active: 10 #最大连接数
+          min-idle: 2    #最小空闲数
+  application:
+    name: smppw-analysis
 
 
 smppw:
 smppw:
   data:
   data:
     analysis:
     analysis:
-      py-url: https://master-test.simuwang.com/
-      cache-type: memory
-      enable-sign: false
-      data-source: ${spring.profiles.active}
+      py-url: https://pymaster-test.simuwang.com/  # python服务调用地址
+      cache-type: redis # 缓存类型,支持redis和memory;如果是redis必须配置redis
+      enable-sign: false # 参数签名校验功能是否可用
+      data-source: tob # 数据源、toc和tob
+
+# 打印一下sql日志
+logging:
+  level:
+    com.smppw.analysis.domain.mapper: debug

+ 44 - 19
src/main/resources/application-toc.yaml

@@ -1,5 +1,5 @@
 server:
 server:
-  port: 8900
+  port: 8899
   undertow:
   undertow:
     accesslog:
     accesslog:
       dir: .logs
       dir: .logs
@@ -19,22 +19,40 @@ server:
 
 
 spring:
 spring:
   datasource:
   datasource:
-    url: jdbc:mysql://120.79.121.165:3306/rz_hfdb_core?allowMultiQueries=true&useSSL=false&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull
-    username: rz_new_data_channel_user
-    password: xVfuCKIP
-    driver-class-name: com.mysql.cj.jdbc.Driver
-    hikari:
-      pool-name: hfdb_core
-      # 连接池最大连接数,默认是10
-      maximum-pool-size: 10
-      # 此属性控制从池返回的连接的默认自动提交行为,默认值:true
-      auto-commit: true
-      # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟
-      max-lifetime: 900000
-      # 数据库连接超时时间,设置为300秒超时
-      connection-timeout: 300000
-      # keepalive time
-      keepalive-time: 60000
+    core:
+      jdbc-url: jdbc:mysql://120.79.121.165:3306/rz_hfdb_core?allowMultiQueries=true&useSSL=false&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull
+      username: rz_new_data_channel_user
+      password: xVfuCKIP
+      driver-class-name: com.mysql.cj.jdbc.Driver
+      hikari:
+        pool-name: hfdb_core
+        # 连接池最大连接数,默认是10
+        maximum-pool-size: 10
+        # 此属性控制从池返回的连接的默认自动提交行为,默认值:true
+        auto-commit: true
+        # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟
+        max-lifetime: 900000
+        # 数据库连接超时时间,设置为300秒超时
+        connection-timeout: 300000
+        # keepalive time
+        keepalive-time: 60000
+    mf:
+      jdbc-url: jdbc:mysql://120.79.121.165:3306/rz_mf_info?allowMultiQueries=true&useSSL=false&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull
+      username: rz_new_data_channel_user
+      password: xVfuCKIP
+      driver-class-name: com.mysql.cj.jdbc.Driver
+      hikari:
+        pool-name: mf_info
+        # 连接池最大连接数,默认是10
+        maximum-pool-size: 10
+        # 此属性控制从池返回的连接的默认自动提交行为,默认值:true
+        auto-commit: true
+        # 此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认30分钟
+        max-lifetime: 900000
+        # 数据库连接超时时间,设置为300秒超时
+        connection-timeout: 300000
+        # keepalive time
+        keepalive-time: 60000
   data:
   data:
     redis:
     redis:
       host: 192.168.1.28
       host: 192.168.1.28
@@ -47,11 +65,18 @@ spring:
           max-idle: 6    #最大空闲数
           max-idle: 6    #最大空闲数
           max-active: 10 #最大连接数
           max-active: 10 #最大连接数
           min-idle: 2    #最小空闲数
           min-idle: 2    #最小空闲数
+  application:
+    name: smppw-analysis
 
 
 smppw:
 smppw:
   data:
   data:
     analysis:
     analysis:
       py-url: https://pymaster-test.simuwang.com/  # python服务调用地址
       py-url: https://pymaster-test.simuwang.com/  # python服务调用地址
-      cache-type: redis # 缓存类型,如果是redis必须配置redis
+      cache-type: redis # 缓存类型,支持redis和memory;如果是redis必须配置redis
       enable-sign: false # 参数签名校验功能是否可用
       enable-sign: false # 参数签名校验功能是否可用
-      data-source: ${spring.profiles.active}
+      data-source: toc # 数据源、toc和tob
+
+# 打印一下sql日志
+logging:
+  level:
+    com.smppw.analysis.domain.mapper: debug

+ 9 - 18
src/main/resources/application.yaml

@@ -1,12 +1,6 @@
 server:
 server:
   port: 8899
   port: 8899
   undertow:
   undertow:
-    accesslog:
-      dir: .logs
-      enabled: true
-      pattern: common
-      prefix: access_log
-      suffix: log
     threads:
     threads:
       # io线程数,主要执行费阻塞的任务
       # io线程数,主要执行费阻塞的任务
       io: 8
       io: 8
@@ -16,16 +10,16 @@ server:
     buffer-size: 1024
     buffer-size: 1024
     # 是否分配的直接内存
     # 是否分配的直接内存
     direct-buffers: true
     direct-buffers: true
+  error:
+    include-binding-errors: on_param
+    include-stacktrace: on_param
 
 
 spring:
 spring:
   datasource:
   datasource:
     core:
     core:
-#      jdbc-url: jdbc:mysql://120.79.121.165:3306/rz_hfdb_core?allowMultiQueries=true&useSSL=false&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull
-#      username: rz_new_data_channel_user
-#      password: xVfuCKIP
-      jdbc-url: jdbc:mysql://47.112.140.222:3306/rz_hfdb_core?allowMultiQueries=true&useSSL=false&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull
-      username: rz_cm_master
-      password: TbLuENLK
+      jdbc-url: jdbc:mysql://120.79.121.165:3306/rz_hfdb_core?allowMultiQueries=true&useSSL=false&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull
+      username: rz_new_data_channel_user
+      password: xVfuCKIP
       driver-class-name: com.mysql.cj.jdbc.Driver
       driver-class-name: com.mysql.cj.jdbc.Driver
       hikari:
       hikari:
         pool-name: hfdb_core
         pool-name: hfdb_core
@@ -40,12 +34,9 @@ spring:
         # keepalive time
         # keepalive time
         keepalive-time: 60000
         keepalive-time: 60000
     mf:
     mf:
-#      jdbc-url: jdbc:mysql://120.79.121.165:3306/rz_mf_info?allowMultiQueries=true&useSSL=false&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull
-#      username: rz_new_data_channel_user
-#      password: xVfuCKIP
-      jdbc-url: jdbc:mysql://47.112.140.222:3306/rz_mf_info?allowMultiQueries=true&useSSL=false&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull
-      username: rz_cm_master
-      password: TbLuENLK
+      jdbc-url: jdbc:mysql://120.79.121.165:3306/rz_mf_info?allowMultiQueries=true&useSSL=false&rewriteBatchedStatements=true&zeroDateTimeBehavior=convertToNull
+      username: rz_new_data_channel_user
+      password: xVfuCKIP
       driver-class-name: com.mysql.cj.jdbc.Driver
       driver-class-name: com.mysql.cj.jdbc.Driver
       hikari:
       hikari:
         pool-name: mf_info
         pool-name: mf_info

+ 81 - 0
src/main/resources/logback.xml

@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="true">
+    <!-- 日志格式:年-月-日 时:分:秒 [线程] 日志级别 所在类:行号 - 具体信息 换行 -->
+    <property name="CONSOLE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%-4L - %msg%n"/>
+    <property name="LOG_HOME" value="./log"/>
+
+    <!--输出到控制台-->
+    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+            <!--<charset>utf8</charset>-->
+        </encoder>
+    </appender>
+
+
+    <!--info 级别的日志-->
+    <!-- 按照每天生成日志文件 -->
+    <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <encoder>
+            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+        </encoder>
+        <file>${LOG_HOME}/info.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <fileNamePattern>${LOG_HOME}/info/%d{yyyy-MM-dd}_%i.log</fileNamePattern>
+            <maxFileSize>50MB</maxFileSize>
+            <!--日志文件保留天数-->
+            <MaxHistory>18</MaxHistory>
+        </rollingPolicy>
+    </appender>
+
+
+    <!--WARN 级别的日志-->
+    <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>WARN</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <encoder>
+            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+        </encoder>
+        <file>${LOG_HOME}/warn.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_HOME}/warn/%d{yyyy-MM-dd}_%i.log</fileNamePattern>
+            <maxFileSize>50MB</maxFileSize>
+            <MaxHistory>18</MaxHistory>
+        </rollingPolicy>
+    </appender>
+
+    <!--ERROR 级别的日志-->
+    <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>ERROR</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <encoder>
+            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
+        </encoder>
+        <file>${LOG_HOME}/error.log</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_HOME}/error/%d{yyyy-MM-dd}_%i.log</fileNamePattern>
+            <maxFileSize>50MB</maxFileSize>
+            <MaxHistory>18</MaxHistory>
+        </rollingPolicy>
+    </appender>
+
+    <!-- 日志输出级别 -->
+    <root level="INFO">
+        <appender-ref ref="CONSOLE"/>
+        <appender-ref ref="INFO"/>
+        <appender-ref ref="WARN"/>
+        <appender-ref ref="ERROR"/>
+    </root>
+</configuration>