作用
可以将一些在测试和生产不一样的数据或敏感数据保存在数据库,项目启动时放入map中,需要时从map中取出
配置文件设置
<bean id="propertyMap " class="com.just.common.propert.PropertyMap" init-method="initData"/>
具体代码使用
package com.just.common.property;
import com.just.common.conf.SpringContextUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class PropertyMap {
private static final Logger logger = LoggerFactory.getLogger(PropertyMap.class);
private static Map<String, String> propertyMap = new HashMap<String, String>();
private PropertyDAO propertyDAO;
// 初始化时拿到属性值,放入map中
public void initData() {
List<PropertyDO> propertyValueList = propertyDAO.selectAll();
if (null == propertyValueList || propertyValueList.isEmpty()) {
return;
}
for (PropertyDO propertyValue : propertyValueList) {
propertyMap.put(propertyValue.getPropertyType() + ":" + propertyValue.getPropertyKey(),
propertyValue.getPropertyValue());
}
}
// map中取
public static String getPropertyFromMap(String type, String key) {
String propertyValue = type + ":" + key;
if (StringUtils.isEmpty(type) || StringUtils.isEmpty(key)) {
return "传参错误!";
}
if (!propertyMap.containsKey(propertyValue)) {
return "数据不存在!";
}
return propertyMap.get(propertyValue);
}
// 数据库读取
public static String getPropertyFromDB(String type, String key) {
if (StringUtils.isEmpty(type) || StringUtils.isEmpty(key)) {
return "传参错误!";
}
Object propertyDAO = SpringContextUtils.getBean("propertyDAO");
if (null == propertyDAO) {
return "无法获取数据";
}
PropertyDO propertyDO = new PropertyDO();
propertyDO.setPropertyType(type);
propertyDO.setPropertyKey(key);
PropertyDO propertyValue = ((PropertyDAO) propertyDAO).selectByType(propertyDO);
if (null == propertyValue) {
return "数据不存在!";
}
return propertyValue.getPropertyValue();
}
}