From e0fc9171b665812539199796622763a5b86d867f Mon Sep 17 00:00:00 2001 From: lijiahang Date: Fri, 14 Jul 2023 11:17:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=BB=98=E8=AE=A4=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=AE=A2=E6=88=B7=E7=AB=AF.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/core/generator/CodeGenerator.java | 18 +++--- .../config/OrionStorageAutoConfiguration.java | 11 +++- .../core/client/AbstractFileClient.java | 4 ++ .../storage/core/client/FileClientConfig.java | 5 ++ .../core/client/PrimaryFileClient.java | 61 +++++++++++++++++++ .../spring-configuration-metadata.json | 6 ++ .../controller/BootstrapController.java | 2 +- .../src/main/resources/application.yaml | 1 + 8 files changed, 95 insertions(+), 13 deletions(-) create mode 100644 orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/java/com/orion/ops/framework/storage/core/client/PrimaryFileClient.java diff --git a/orion-ops-framework/orion-ops-spring-boot-starter-mybatis/src/main/java/com/orion/ops/framework/mybatis/core/generator/CodeGenerator.java b/orion-ops-framework/orion-ops-spring-boot-starter-mybatis/src/main/java/com/orion/ops/framework/mybatis/core/generator/CodeGenerator.java index 0f144795..037ee6d0 100644 --- a/orion-ops-framework/orion-ops-spring-boot-starter-mybatis/src/main/java/com/orion/ops/framework/mybatis/core/generator/CodeGenerator.java +++ b/orion-ops-framework/orion-ops-spring-boot-starter-mybatis/src/main/java/com/orion/ops/framework/mybatis/core/generator/CodeGenerator.java @@ -4,11 +4,9 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.generator.AutoGenerator; import com.baomidou.mybatisplus.generator.config.*; import com.baomidou.mybatisplus.generator.config.builder.CustomFile; -import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert; import com.baomidou.mybatisplus.generator.config.querys.MySqlQuery; import com.baomidou.mybatisplus.generator.config.rules.DateType; import com.baomidou.mybatisplus.generator.config.rules.DbColumnType; -import com.baomidou.mybatisplus.generator.config.rules.IColumnType; import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy; import com.orion.lang.constant.Const; import com.orion.lang.utils.ext.yml.YmlExt; @@ -19,6 +17,7 @@ import org.apache.ibatis.annotations.Mapper; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; import java.io.File; +import java.sql.Types; import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -164,16 +163,13 @@ public class CodeGenerator { private static DataSourceConfig getDataSourceConfig(String url, String username, String password) { DataSourceConfig dsConfig = new DataSourceConfig.Builder(url, username, password) // 转换器 - .typeConvert(new MySqlTypeConvert() { - @Override - public IColumnType processTypeConvert(GlobalConfig globalConfig, String fieldType) { - if (fieldType.toLowerCase().contains("bit")) { + .typeConvertHandler((globalConfig, typeRegistry, metaInfo) -> { + switch (metaInfo.getJdbcType().TYPE_CODE) { + case Types.BIT: + case Types.TINYINT: return DbColumnType.INTEGER; - } - if (fieldType.toLowerCase().contains("tinyint")) { - return DbColumnType.INTEGER; - } - return super.processTypeConvert(globalConfig, fieldType); + default: + return typeRegistry.getColumnType(metaInfo); } }) // 查询器 diff --git a/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/java/com/orion/ops/framework/storage/config/OrionStorageAutoConfiguration.java b/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/java/com/orion/ops/framework/storage/config/OrionStorageAutoConfiguration.java index c200ace3..5b4a22e4 100644 --- a/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/java/com/orion/ops/framework/storage/config/OrionStorageAutoConfiguration.java +++ b/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/java/com/orion/ops/framework/storage/config/OrionStorageAutoConfiguration.java @@ -2,6 +2,7 @@ package com.orion.ops.framework.storage.config; import com.orion.ops.framework.common.constant.AutoConfigureOrderConst; import com.orion.ops.framework.storage.core.client.FileClient; +import com.orion.ops.framework.storage.core.client.PrimaryFileClient; import com.orion.ops.framework.storage.core.client.local.LocalFileClient; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.AutoConfigureOrder; @@ -30,10 +31,18 @@ public class OrionStorageAutoConfiguration { private StorageConfig config; /** - * 本地文件客户端 + * 默认文件客户端 */ @Bean @Primary + public FileClient primaryFileClient() { + return new PrimaryFileClient(); + } + + /** + * 本地文件客户端 + */ + @Bean @ConditionalOnProperty(value = "orion.storage.local.enabled", havingValue = "true") public FileClient localFileClient() { return new LocalFileClient(config.getLocal()); diff --git a/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/java/com/orion/ops/framework/storage/core/client/AbstractFileClient.java b/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/java/com/orion/ops/framework/storage/core/client/AbstractFileClient.java index 30ab0c93..15dbfd22 100644 --- a/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/java/com/orion/ops/framework/storage/core/client/AbstractFileClient.java +++ b/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/java/com/orion/ops/framework/storage/core/client/AbstractFileClient.java @@ -20,6 +20,10 @@ public abstract class AbstractFileClient implem public AbstractFileClient(Config config) { this.config = config; + // 设置默认文件客户端 + if (config.isPrimary()) { + PrimaryFileClient.delegate = this; + } } @Override diff --git a/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/java/com/orion/ops/framework/storage/core/client/FileClientConfig.java b/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/java/com/orion/ops/framework/storage/core/client/FileClientConfig.java index dd8f4ec0..4aa228e7 100644 --- a/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/java/com/orion/ops/framework/storage/core/client/FileClientConfig.java +++ b/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/java/com/orion/ops/framework/storage/core/client/FileClientConfig.java @@ -12,6 +12,11 @@ import lombok.Data; @Data public class FileClientConfig { + /** + * 是否为默认客户端 + */ + protected boolean primary; + /** * 是否启用 */ diff --git a/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/java/com/orion/ops/framework/storage/core/client/PrimaryFileClient.java b/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/java/com/orion/ops/framework/storage/core/client/PrimaryFileClient.java new file mode 100644 index 00000000..b451e056 --- /dev/null +++ b/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/java/com/orion/ops/framework/storage/core/client/PrimaryFileClient.java @@ -0,0 +1,61 @@ +package com.orion.ops.framework.storage.core.client; + +import java.io.InputStream; + +/** + * 默认文件客户端 + * + * @author Jiahang Li + * @version 1.0.0 + * @since 2023/7/14 11:01 + */ +public class PrimaryFileClient implements FileClient { + + protected static FileClient delegate; + + @Override + public String upload(String path, byte[] content) throws Exception { + return delegate.upload(path, content); + } + + @Override + public String upload(String path, byte[] content, boolean overrideIfExist) throws Exception { + return delegate.upload(path, content, overrideIfExist); + } + + @Override + public String upload(String path, InputStream in) throws Exception { + return delegate.upload(path, in); + } + + @Override + public String upload(String path, InputStream in, boolean autoClose) throws Exception { + return delegate.upload(path, in, autoClose); + } + + @Override + public String upload(String path, InputStream in, boolean autoClose, boolean overrideIfExist) throws Exception { + return delegate.upload(path, in, autoClose, overrideIfExist); + } + + @Override + public boolean isExists(String path) { + return delegate.isExists(path); + } + + @Override + public boolean delete(String path) throws Exception { + return delegate.delete(path); + } + + @Override + public byte[] getContent(String path) throws Exception { + return delegate.getContent(path); + } + + @Override + public InputStream getContentInputStream(String path) throws Exception { + return delegate.getContentInputStream(path); + } + +} diff --git a/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/resources/META-INF/spring-configuration-metadata.json b/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/resources/META-INF/spring-configuration-metadata.json index 6b0fa792..a3a13d88 100644 --- a/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/resources/META-INF/spring-configuration-metadata.json +++ b/orion-ops-framework/orion-ops-spring-boot-starter-storage/src/main/resources/META-INF/spring-configuration-metadata.json @@ -12,6 +12,12 @@ } ], "properties": [ + { + "name": "orion.storage.local.primary", + "type": "java.lang.Boolean", + "description": "是否为默认客户端.", + "defaultValue": false + }, { "name": "orion.storage.local.enabled", "type": "java.lang.Boolean", diff --git a/orion-ops-launch/src/main/java/com/orion/ops/launch/controller/BootstrapController.java b/orion-ops-launch/src/main/java/com/orion/ops/launch/controller/BootstrapController.java index 16d43793..799d4257 100644 --- a/orion-ops-launch/src/main/java/com/orion/ops/launch/controller/BootstrapController.java +++ b/orion-ops-launch/src/main/java/com/orion/ops/launch/controller/BootstrapController.java @@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.RestController; @RequestMapping("/server/bootstrap") public class BootstrapController { - @Operation(summary = "检测心跳") + @Operation(summary = "健康检测") @GetMapping("/health") public String health() { return "server ok"; diff --git a/orion-ops-launch/src/main/resources/application.yaml b/orion-ops-launch/src/main/resources/application.yaml index 44b365f9..4a0fa30b 100644 --- a/orion-ops-launch/src/main/resources/application.yaml +++ b/orion-ops-launch/src/main/resources/application.yaml @@ -165,6 +165,7 @@ orion: storage: # 本地文件存储 local: + primary: true enabled: true name-append-trace-id: true storage-path: ${user.home}