All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hn.config.HnConfigUtils Maven / Gradle / Ivy

There is a newer version: 1.0.18
Show newest version
package com.hn.config;

import cn.hutool.core.util.StrUtil;
import cn.hutool.db.Db;
import cn.hutool.db.Entity;
import cn.hutool.db.ds.simple.SimpleDataSource;
import cn.hutool.json.JSONUtil;
import cn.hutool.log.Log;
import cn.hutool.log.LogFactory;
import org.springframework.core.env.Environment;

import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 描述:
 * HnConfig配置文件 优先读取数据库配置
* 数据库
* HnConfigUtils.init(ds);
* * spring配置文件
* HnConfigUtils.init(environment);
* * 初始化方法 * springboot:
* {@code @Component}
* public class HnConfig {
* {@code @Autowired }
* private DataSource ds;
* {@code @PostConstruct }
* public void dataSource(){
* HnConfigUtils.init(ds);
* }
* } * * @author fei */ public class HnConfigUtils { private static final Log log = LogFactory.get(); public static final String CONFIG_TABLE = "hn_config"; private static Map configMap = new HashMap(64); private static Environment springEnvironment; private HnConfigUtils() {} /** * 初始化数据 * * @param ds {@link DataSource} * @param tableName 配置数据表表名 */ public static void init(DataSource ds, String tableName) { try { Db db = Db.use(ds); List list = db.findAll(tableName); for (Entity entity : list) { String configKey = entity.getStr("config_key"); String configValue = entity.getStr("config_value"); configMap.put(configKey, configValue); } log.debug("hn_config配置读取:{}", JSONUtil.toJsonStr(configMap)); } catch (SQLException e) { log.error("hn_config配置读取异常:{}", e.getMessage()); } } /** * 初始化数据 * * @param ds {@link DataSource} */ public static void init(DataSource ds) { init(ds, CONFIG_TABLE); } /** * 初始化数据 * * @param environment spring 环境配置 {@link Environment} */ public static void init(Environment environment) { springEnvironment = environment; } /** * 初始化数据 * * @param map 参数列表 {key:value} */ public static void init(Map map) { configMap = map; } /** * 初始化数据 * * @param url 数据库连接 * @param username 用户名 * @param password 密码 */ public static void init(String url, String username, String password) { DataSource ds = new SimpleDataSource(url, username, password); init(ds); } /** * 初始化数据 * * @param url 数据库连接 * @param username 用户名 * @param password 密码 * @param keyPwd 数据密钥 */ public static void init(String url, String username, String password, String keyPwd) { DataSource ds = new SimpleDataSource(url, username, password); init(ds, keyPwd); } /** * 获取配置信息 * * @param key 配置key * @return value */ public static String getConfig(String key) { String val = configMap.get(key); if (StrUtil.isBlank(val)) { if (springEnvironment != null) { try { val = springEnvironment.getProperty(key); configMap.put(key, val); } catch (NoClassDefFoundError e) { log.error("当前系统不在[spring]环境中"); } } } return val; } /** * 设置配置信息 * * @param key 配置key * @param value 配置value */ public static void setConfig(String key,String value) { configMap.put(key,value); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy