From 9054df71976c153c4e9a27c7608dc3967d4afdf6 Mon Sep 17 00:00:00 2001 From: Kosaka Bun Date: Tue, 7 Jan 2025 22:20:37 +0800 Subject: [PATCH] Move starter/LoggerProperties --- .../starter/component/logger/LoggerServer.kt | 21 ++++------ .../qqrobot/starter/config/AdminWebConfig.kt | 39 ++++++++++++++----- .../starter/config/LoggerProperties.kt | 14 +++++++ .../qqrobot/starter/config/MainConfig.kt | 17 +------- 4 files changed, 52 insertions(+), 39 deletions(-) create mode 100644 qqrobot-spring-boot-starter/src/main/java/de/honoka/qqrobot/starter/config/LoggerProperties.kt diff --git a/qqrobot-spring-boot-starter/src/main/java/de/honoka/qqrobot/starter/component/logger/LoggerServer.kt b/qqrobot-spring-boot-starter/src/main/java/de/honoka/qqrobot/starter/component/logger/LoggerServer.kt index f3db9ac..3baa935 100644 --- a/qqrobot-spring-boot-starter/src/main/java/de/honoka/qqrobot/starter/component/logger/LoggerServer.kt +++ b/qqrobot-spring-boot-starter/src/main/java/de/honoka/qqrobot/starter/component/logger/LoggerServer.kt @@ -1,25 +1,26 @@ package de.honoka.qqrobot.starter.component.logger import cn.hutool.core.io.FileUtil -import de.honoka.sdk.util.file.FileUtils +import de.honoka.qqrobot.starter.config.LoggerProperties import de.honoka.sdk.util.kotlin.basic.log import jakarta.annotation.PostConstruct -import org.h2.Driver -import org.springframework.boot.context.properties.ConfigurationProperties import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.stereotype.Component import java.nio.charset.StandardCharsets import java.sql.Connection import java.sql.DriverManager -import kotlin.io.path.Path @EnableConfigurationProperties(LoggerProperties::class) @Component class LoggerServer(private val loggerProperties: LoggerProperties) { val connection: Connection - get() = DriverManager.getConnection(loggerProperties.jdbcUrl).apply { - autoCommit = true + get() { + Class.forName(loggerProperties.databaseDriver.name) + val c = DriverManager.getConnection(loggerProperties.jdbcUrl).apply { + autoCommit = true + } + return c } @PostConstruct @@ -41,11 +42,3 @@ class LoggerServer(private val loggerProperties: LoggerProperties) { } } } - -@ConfigurationProperties("honoka.qqrobot.logger") -class LoggerProperties( - - var databaseDriver: Class<*> = Driver::class.java, - - var jdbcUrl: String = "jdbc:h2:${Path(FileUtils.getMainClasspath(), "qqrobot", "log")}" -) \ No newline at end of file diff --git a/qqrobot-spring-boot-starter/src/main/java/de/honoka/qqrobot/starter/config/AdminWebConfig.kt b/qqrobot-spring-boot-starter/src/main/java/de/honoka/qqrobot/starter/config/AdminWebConfig.kt index a7ca665..874d7f3 100644 --- a/qqrobot-spring-boot-starter/src/main/java/de/honoka/qqrobot/starter/config/AdminWebConfig.kt +++ b/qqrobot-spring-boot-starter/src/main/java/de/honoka/qqrobot/starter/config/AdminWebConfig.kt @@ -2,26 +2,32 @@ package de.honoka.qqrobot.starter.config import de.honoka.qqrobot.starter.component.admin.AdminLoginInterceptor import de.honoka.sdk.spring.starter.core.context.springBean +import org.springframework.boot.context.properties.ConfigurationProperties +import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.context.annotation.Configuration import org.springframework.web.servlet.config.annotation.InterceptorRegistry import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry import org.springframework.web.servlet.config.annotation.WebMvcConfigurer +@EnableConfigurationProperties(AdminProperties::class) @Configuration class AdminWebConfig : WebMvcConfigurer { - override fun addInterceptors(registry: InterceptorRegistry) { + private val excludePathPatterns = run { val prefix = AdminProperties.WEB_PREFIX + listOf( + "$prefix/static/**", + "$prefix/api/login", + "$prefix/favicon.ico", + "$prefix/index.html", + "$prefix/" + ) + } + + override fun addInterceptors(registry: InterceptorRegistry) { registry.run { addInterceptor(AdminLoginInterceptor::class.springBean).run { - addPathPatterns("$prefix/**") - val excludePathPatterns = listOf( - "$prefix/static/**", - "$prefix/api/login", - "$prefix/favicon.ico", - "$prefix/index.html", - "$prefix/" - ) + addPathPatterns("${AdminProperties.WEB_PREFIX}/**") excludePathPatterns(excludePathPatterns) } } @@ -35,3 +41,18 @@ class AdminWebConfig : WebMvcConfigurer { } } } + +@ConfigurationProperties("honoka.qqrobot.admin") +data class AdminProperties( + + /** + * 后台管理界面的登录密码 + */ + var password: String = "123456" +) { + + companion object { + + const val WEB_PREFIX = "/admin" + } +} diff --git a/qqrobot-spring-boot-starter/src/main/java/de/honoka/qqrobot/starter/config/LoggerProperties.kt b/qqrobot-spring-boot-starter/src/main/java/de/honoka/qqrobot/starter/config/LoggerProperties.kt new file mode 100644 index 0000000..17f6bf6 --- /dev/null +++ b/qqrobot-spring-boot-starter/src/main/java/de/honoka/qqrobot/starter/config/LoggerProperties.kt @@ -0,0 +1,14 @@ +package de.honoka.qqrobot.starter.config + +import de.honoka.sdk.util.file.FileUtils +import org.h2.Driver +import org.springframework.boot.context.properties.ConfigurationProperties +import kotlin.io.path.Path + +@ConfigurationProperties("honoka.qqrobot.logger") +class LoggerProperties( + + var databaseDriver: Class<*> = Driver::class.java, + + var jdbcUrl: String = "jdbc:h2:${Path(FileUtils.getMainClasspath(), "qqrobot", "log")}" +) diff --git a/qqrobot-spring-boot-starter/src/main/java/de/honoka/qqrobot/starter/config/MainConfig.kt b/qqrobot-spring-boot-starter/src/main/java/de/honoka/qqrobot/starter/config/MainConfig.kt index 1c70d76..63d0097 100644 --- a/qqrobot-spring-boot-starter/src/main/java/de/honoka/qqrobot/starter/config/MainConfig.kt +++ b/qqrobot-spring-boot-starter/src/main/java/de/honoka/qqrobot/starter/config/MainConfig.kt @@ -9,7 +9,7 @@ import org.springframework.scheduling.annotation.EnableScheduling @EnableScheduling @ComponentScan("de.honoka.qqrobot.starter", "de.honoka.qqrobot.framework.config") -@EnableConfigurationProperties(RobotBasicProperties::class, AdminProperties::class) +@EnableConfigurationProperties(RobotBasicProperties::class) @Configuration("qqrobotStarterMainConfig") class MainConfig @@ -73,18 +73,3 @@ data class RobotBasicProperties( var impl: FrameworkEnum = FrameworkEnum.TESTER ) } - -@ConfigurationProperties("honoka.qqrobot.admin") -data class AdminProperties( - - /** - * 后台管理界面的登录密码 - */ - var password: String = "123456" -) { - - companion object { - - const val WEB_PREFIX = "/admin" - } -}