diff --git a/ds-base/pom.xml b/ds-base/pom.xml index 0701c639..ddae4753 100644 --- a/ds-base/pom.xml +++ b/ds-base/pom.xml @@ -241,6 +241,12 @@ poi-ooxml ${poi.version} + + + org.yaml + snakeyaml + ${snakeyaml.version} + diff --git a/ds-base/src/main/java/com/dsideal/base/BaseApplication.java b/ds-base/src/main/java/com/dsideal/base/BaseApplication.java index 29bd827e..b1100863 100644 --- a/ds-base/src/main/java/com/dsideal/base/BaseApplication.java +++ b/ds-base/src/main/java/com/dsideal/base/BaseApplication.java @@ -11,6 +11,7 @@ import com.dsideal.base.Interceptor.*; import com.dsideal.base.LoginPerson.Controller.LoginPersonController; import com.dsideal.base.Menu.Controller.MenuController; import com.dsideal.base.Organization.Controller.OrganizationController; +import com.dsideal.base.Plugin.YamlProp; import com.dsideal.base.Student.Controller.StudentController; import com.dsideal.base.StudentYd.Controller.StudentYdController; import com.dsideal.base.Teacher.Controller.TeacherController; @@ -19,7 +20,7 @@ import com.dsideal.base.Util.FileUtil; import com.dsideal.base.Util.LogBackLogFactory; import com.dsideal.base.Util.PkUtil; import com.jfinal.config.*; -import com.jfinal.kit.PropKit; +import com.jfinal.kit.Prop; import com.jfinal.kit.StrKit; import com.jfinal.plugin.activerecord.ActiveRecordPlugin; import com.jfinal.plugin.activerecord.dialect.MysqlDialect; @@ -46,13 +47,15 @@ public class BaseApplication extends JFinalConfig { /** * 配置常量 */ + Prop PropKit; + @Override public void configConstant(Constants me) { //使用LogBack me.setLogFactory(new LogBackLogFactory()); //加载配置文件 - String configFile = "application_{?}.properties".replace("{?}", getEnvPrefix()); - PropKit.use(configFile); + String configFile = "application_{?}.yaml".replace("{?}", getEnvPrefix()); + PropKit = new YamlProp(configFile); } /** @@ -92,6 +95,7 @@ public class BaseApplication extends JFinalConfig { public void configEngine(Engine engine) { } + /** * 配置插件 */ @@ -106,18 +110,18 @@ public class BaseApplication extends JFinalConfig { @Override public void configPlugin(Plugins me) { - HikariCpPlugin masterPlugin = new HikariCpPlugin(PropKit.get("jdbcUrl"), PropKit.get("user"), - PropKit.get("password").trim(), PropKit.get("driverClassName")); + HikariCpPlugin masterPlugin = new HikariCpPlugin(PropKit.get("mysql.jdbcUrl"), PropKit.get("mysql.user"), + PropKit.get("mysql.password").trim(), PropKit.get("mysql.driverClassName")); masterPlugin.setConnectionTestQuery(connectionTestQuery); masterPlugin.setConnectionTimeout(connectionTimeoutMs); masterPlugin.setIdleTimeout(idleTimeoutMs); masterPlugin.setMaxLifetime(maxLifetimeMs); masterPlugin.setMaximumPoolSize(maxPoolSize); - String jdbcUrlSlave = PropKit.get("jdbcUrlSlave"); - if (StrKit.isBlank(jdbcUrlSlave)) jdbcUrlSlave = PropKit.get("jdbcUrl"); - HikariCpPlugin slavePlugin = new HikariCpPlugin(jdbcUrlSlave, PropKit.get("user"), - PropKit.get("password").trim(), PropKit.get("driverClassName")); + String jdbcUrlSlave = PropKit.get("mysql.jdbcUrlSlave"); + if (StrKit.isBlank(jdbcUrlSlave)) jdbcUrlSlave = PropKit.get("mysql.jdbcUrl"); + HikariCpPlugin slavePlugin = new HikariCpPlugin(jdbcUrlSlave, PropKit.get("mysql.user"), + PropKit.get("mysql.password").trim(), PropKit.get("mysql.driverClassName")); slavePlugin.setConnectionTestQuery(connectionTestQuery); slavePlugin.setConnectionTimeout(connectionTimeoutMs); slavePlugin.setIdleTimeout(idleTimeoutMs); @@ -148,7 +152,7 @@ public class BaseApplication extends JFinalConfig { me.add(masterArp); me.add(slaveArp); // 用于缓存模块的redis服务 - RedisPlugin redis = new RedisPlugin("Redis", PropKit.get("redis_ip"), PropKit.getInt("redis_port"), 10 * 1000); + RedisPlugin redis = new RedisPlugin("Redis", PropKit.get("redis.ip"), PropKit.getInt("redis.port"), 10 * 1000,PropKit.get("redis.password")); //启动redis组件 me.add(redis); } diff --git a/ds-base/src/main/java/com/dsideal/base/Plugin/YamlProp.java b/ds-base/src/main/java/com/dsideal/base/Plugin/YamlProp.java new file mode 100644 index 00000000..c990a100 --- /dev/null +++ b/ds-base/src/main/java/com/dsideal/base/Plugin/YamlProp.java @@ -0,0 +1,47 @@ +package com.dsideal.base.Plugin; + +import com.jfinal.kit.Prop; +import org.yaml.snakeyaml.Yaml; + +import java.io.InputStream; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Properties; + +public class YamlProp extends Prop { + public YamlProp(String yamlFile) { + setYaml(yamlFile); + } + + private void setYaml(String yamlFile) { + LinkedHashMap map = null; + Properties properties = new Properties(); + InputStream in; + try { + Yaml yaml = new Yaml(); + in = YamlProp.class.getClassLoader().getResourceAsStream(yamlFile); + map = yaml.loadAs(in, LinkedHashMap.class); + } catch (Exception e) { + e.printStackTrace(); + } + setProperties(properties, map, ""); + this.properties = properties; + } + + private static void setProperties(Properties properties, Map map, String prefix) { + for (Object key : map.keySet()) { + Object value = map.get(key); + if (key == null) { + continue; + } + if (value instanceof Map) { + setProperties(properties, (Map) value, prefix + key + "."); + } else { + if (value == null) { + continue; + } + properties.setProperty(prefix + key, value.toString()); + } + } + } +} \ No newline at end of file diff --git a/ds-base/src/main/resource/application_dev.properties b/ds-base/src/main/resource/application_dev.properties deleted file mode 100644 index 47201e3c..00000000 --- a/ds-base/src/main/resource/application_dev.properties +++ /dev/null @@ -1,17 +0,0 @@ -# 数据库信息 -driverClassName=com.mysql.cj.jdbc.Driver -user=root -password=DsideaL147258369 -jdbcUrl=jdbc:mysql://10.10.14.210:22066/ds_db?rewriteBatchedStatements=true&useUnicode=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai -# redis -redis_ip=10.10.14.210 -redis_port=18890 -redis_password= -# ============================================================== -# 生成Token的密码 -CookieMd5SingPwd=DsideaL4r5t6y7u -# 导出excel 的模板配置路径 -excelExportTemplatePathSuffix=/ExcelExportTemplate/ -# 导入excel 的模板配置路径 -ExcelImportTemplatePathSuffix=/ExcelImportTemplate/ - diff --git a/ds-base/src/main/resource/application_dev.yaml b/ds-base/src/main/resource/application_dev.yaml new file mode 100644 index 00000000..3c5889fc --- /dev/null +++ b/ds-base/src/main/resource/application_dev.yaml @@ -0,0 +1,24 @@ +mysql: + # 数据库信息 + driverClassName: com.mysql.cj.jdbc.Driver + user: root + password: DsideaL147258369 + jdbcUrl : jdbc:mysql://10.10.14.210:22066/ds_db?rewriteBatchedStatements=true&useUnicode=true&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai + + +redis: + ip: 10.10.14.210 + port: 18890 + password: + +# ============================================================== +jwt: + # 生成Token的密码 + CookieMd5SingPwd: DsideaL4r5t6y7u + +excel: + # 导出excel 的模板配置路径 + excelExportTemplatePathSuffix: /ExcelExportTemplate/ + # 导入excel 的模板配置路径 + ExcelImportTemplatePathSuffix: /ExcelImportTemplate/ + diff --git a/ds-base/src/main/resource/application_pro.properties b/ds-base/src/main/resource/application_pro.properties deleted file mode 100644 index 62447393..00000000 --- a/ds-base/src/main/resource/application_pro.properties +++ /dev/null @@ -1,16 +0,0 @@ -# 数据库信息 -driverClassName=com.mysql.cj.jdbc.Driver -user=ylt -password=Ycharge666 -jdbcUrl=jdbc:mysql://rm-bp1ux6tuk49er80t9.mysql.rds.aliyuncs.com:3306/ds_db?useUnicode=true&characterEncoding=UTF-8 -# redis -redis_ip=r-bp14c1p5j5lkpw1jc2.redis.rds.aliyuncs.com -redis_port=6379 -redis_password=Ycharge666 -# ============================================================== -# 生成Token的密码 -CookieMd5SingPwd=DsideaL4r5t6y7u -# 导出excel 的模板配置路径 -excelExportTemplatePathSuffix=/ExcelExportTemplate/ -# 导入excel 的模板配置路径 -ExcelImportTemplatePathSuffix=/ExcelImportTemplate/ \ No newline at end of file diff --git a/ds-base/src/main/resource/application_pro.yaml b/ds-base/src/main/resource/application_pro.yaml new file mode 100644 index 00000000..495fca29 --- /dev/null +++ b/ds-base/src/main/resource/application_pro.yaml @@ -0,0 +1,24 @@ +mysql: + # 数据库信息 + driverClassName: com.mysql.cj.jdbc.Driver + user: ylt + password: Ycharge666 + jdbcUrl : jdbc:mysql://rm-bp1ux6tuk49er80t9.mysql.rds.aliyuncs.com:3306/ds_db?useUnicode=true&characterEncoding=UTF-8 + + +redis: + ip: r-bp14c1p5j5lkpw1jc2.redis.rds.aliyuncs.com + port: 6379 + password: Ycharge666 + +# ============================================================== +jwt: + # 生成Token的密码 + CookieMd5SingPwd: DsideaL4r5t6y7u + +excel: + # 导出excel 的模板配置路径 + excelExportTemplatePathSuffix: /ExcelExportTemplate/ + # 导入excel 的模板配置路径 + ExcelImportTemplatePathSuffix: /ExcelImportTemplate/ +