Merge remote-tracking branch 'origin/feature/1.6.1' into feature/1.6.1

This commit is contained in:
zCans
2022-11-25 18:43:17 +08:00
6 changed files with 71 additions and 12 deletions
+1
View File
@@ -8,6 +8,7 @@
"scripts": { "scripts": {
"local": "webpack-dev-server --inline --progress --config build/webpack.local.conf.js", "local": "webpack-dev-server --inline --progress --config build/webpack.local.conf.js",
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"build:local": "cross-env NODE_ENV=dev env_config=local node build/build.js",
"build:dev": "cross-env NODE_ENV=dev env_config=dev node build/build.js", "build:dev": "cross-env NODE_ENV=dev env_config=dev node build/build.js",
"build:prod": "cross-env NODE_ENV=production env_config=prod node build/build.js", "build:prod": "cross-env NODE_ENV=production env_config=prod node build/build.js",
"build:sit": "cross-env NODE_ENV=production env_config=sit node build/build.js", "build:sit": "cross-env NODE_ENV=production env_config=sit node build/build.js",
@@ -26,7 +26,7 @@ import com.google.common.collect.Lists;
import fun.asgc.neutrino.core.annotation.PreLoad; import fun.asgc.neutrino.core.annotation.PreLoad;
import fun.asgc.neutrino.core.db.template.JdbcTemplate; import fun.asgc.neutrino.core.db.template.JdbcTemplate;
import fun.asgc.neutrino.core.util.*; import fun.asgc.neutrino.core.util.*;
import fun.asgc.neutrino.proxy.server.base.rest.config.SqliteConfig; import fun.asgc.neutrino.proxy.server.base.rest.config.DbConfig;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.sql.DriverManager; import java.sql.DriverManager;
@@ -41,11 +41,11 @@ import java.util.List;
@PreLoad("init") @PreLoad("init")
public class DBInitialize { public class DBInitialize {
private static List<String> initDataTableNameList = Lists.newArrayList("user", "license", "port_pool", "port_mapping", "job_info"); private static List<String> initDataTableNameList = Lists.newArrayList("user", "license", "port_pool", "port_mapping", "job_info");
private static SqliteConfig sqliteConfig; private static DbConfig dbConfig;
private static JdbcTemplate jdbcTemplate; private static JdbcTemplate jdbcTemplate;
public static void init() throws Exception { public static void init() throws Exception {
sqliteConfig = ConfigUtil.getYmlConfig(SqliteConfig.class); dbConfig = ConfigUtil.getYmlConfig(DbConfig.class);
jdbcTemplate = getJdbcTemplate(); jdbcTemplate = getJdbcTemplate();
initDBStructure(); initDBStructure();
initDBData(); initDBData();
@@ -116,13 +116,13 @@ public class DBInitialize {
() -> null == jdbcTemplate, () -> null == jdbcTemplate,
DBInitialize.class, DBInitialize.class,
() -> { () -> {
Class.forName(sqliteConfig.getDriverClass()); Class.forName(dbConfig.getDriverClass());
//建立一个数据库名data.db的连接,如果不存在就在当前目录下创建之 //建立一个数据库名data.db的连接,如果不存在就在当前目录下创建之
DriverManager.getConnection(sqliteConfig.getUrl()); DriverManager.getConnection(dbConfig.getUrl());
// 创建数据源 // 创建数据源
DruidDataSource dataSource = new DruidDataSource(); DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(sqliteConfig.getUrl()); dataSource.setUrl(dbConfig.getUrl());
dataSource.setDriverClassName(sqliteConfig.getDriverClass()); dataSource.setDriverClassName(dbConfig.getDriverClass());
// 创建jdbcTemplate // 创建jdbcTemplate
jdbcTemplate = new JdbcTemplate(dataSource); jdbcTemplate = new JdbcTemplate(dataSource);
}, },
@@ -24,6 +24,7 @@ package fun.asgc.neutrino.proxy.server.base.rest.config;
import fun.asgc.neutrino.core.annotation.Configuration; import fun.asgc.neutrino.core.annotation.Configuration;
import fun.asgc.neutrino.core.annotation.NonIntercept; import fun.asgc.neutrino.core.annotation.NonIntercept;
import fun.asgc.neutrino.core.annotation.Value; import fun.asgc.neutrino.core.annotation.Value;
import fun.asgc.neutrino.proxy.server.constant.DbTypeEnum;
import lombok.Data; import lombok.Data;
/** /**
@@ -33,8 +34,14 @@ import lombok.Data;
*/ */
@Data @Data
@NonIntercept @NonIntercept
@Configuration(prefix = "neutrino.data.sqlite") @Configuration(prefix = "neutrino.data.db")
public class SqliteConfig { public class DbConfig {
/**
* 数据库类型
* {@link DbTypeEnum}
*/
@Value("type")
private String type;
/** /**
* 连接url * 连接url
*/ */
@@ -37,12 +37,12 @@ import javax.sql.DataSource;
@Component @Component
public class RestConfiguration { public class RestConfiguration {
@Autowired @Autowired
private SqliteConfig sqliteConfig; private DbConfig dbConfig;
@Bean @Bean
public DataSource dataSource() { public DataSource dataSource() {
SQLiteDataSource dataSource = new SQLiteDataSource(); SQLiteDataSource dataSource = new SQLiteDataSource();
dataSource.setUrl(sqliteConfig.getUrl()); dataSource.setUrl(dbConfig.getUrl());
dataSource.setJournalMode("WAL"); dataSource.setJournalMode("WAL");
return dataSource; return dataSource;
} }
@@ -0,0 +1,50 @@
/**
* Copyright (c) 2022 aoshiguchen
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
package fun.asgc.neutrino.proxy.server.constant;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 数据库类型美剧
* @author: aoshiguchen
* @date: 2022/11/25
*/
@Getter
@AllArgsConstructor
public enum DbTypeEnum {
SQLITE("sqlite"),
MYSQL("mysql");
private String type;
private static final Map<String, DbTypeEnum> cache = Stream.of(DbTypeEnum.values()).collect(Collectors.toMap(DbTypeEnum::getType, Function.identity()));
public static DbTypeEnum of(String type) {
return cache.get(type);
}
}
@@ -27,6 +27,7 @@ neutrino:
key-manager-password: 123456 key-manager-password: 123456
jks-path: classpath:/test.jks jks-path: classpath:/test.jks
data: data:
sqlite: db:
type: sqlite
url: jdbc:sqlite:data.db url: jdbc:sqlite:data.db
driver-class: org.sqlite.JDBC driver-class: org.sqlite.JDBC