当前位置:网站首页>枚举根据参数获取值
枚举根据参数获取值
2022-07-06 12:09:00 【Mr_ZhangAdd】
问题背景
业务中经常会遇到固定业务类型,数据库中常常以数值依次标识其含义 0-女 1-男
主体思路:
定义枚举》获取枚举中得值组成map生成bean》通过上下文获取bean获取对应的值
枚举
import lombok.Getter;
import lombok.Setter;
/**
* @author Xuewei.Zhang
* @date 2022/7/5
*/
public enum FlowEnum {
ORDER(0, "订单"),
PROCUREMENT(1, "采购"),
PRODUCTION(2, "生产"),
REIMBURSE(3, "报销"),
VACATE(4, "请假"),
;
@Getter
@Setter
private Integer code;
@Getter
@Setter
private String msg;
FlowEnum(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
}
组装bean
import com.zxw.common.core.base.enums.FlowEnum;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author Xuewei.Zhang
* @date 2022/7/5
*/
@Configuration
public class FlowBean {
@Bean("FlowEnumBean")
public Map<String, Integer> FlowEnumBean() {
Map<String, Integer> map = new ConcurrentHashMap<>();
for (FlowEnum flowEnum : FlowEnum.values()) {
map.put(flowEnum.getMsg(), flowEnum.getCode());
}
return map;
}
}
获取对应的值
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Configuration;
import javax.annotation.Resource;
import java.util.Map;
/**
* @author Xuewei.Zhang
* @date 2022/7/5
*/
@Configuration
public class BeanUtils {
private static ApplicationContext applicationContext;
@Resource
public void setApplicationContext(ApplicationContext applicationContext) {
BeanUtils.applicationContext = applicationContext;
}
public static Integer getCodeByServiceName(String serviceName) {
Map<String, Integer> map = (Map<String, Integer>) applicationContext.getBean("FlowEnumBean");
return map.get(serviceName);
}
}
使用
@Override
@InitInsertInfo
public FlowTypeVO add(FlowTypeVO flowTypeVO) {
//使用
flowTypeVO.setServiceType(BeanUtils.getCodeByServiceName(flowTypeVO.getServiceTypeName()));
flowTypeMapper.insert(flowTypeVO);
return flowTypeVO;
}
测试结果:
边栏推荐
猜你喜欢
算法面试经典100题,Android程序员最新职业规划
MySQL information schema learning (I) -- general table
利用 clip-path 绘制不规则的图形
力扣101题:对称二叉树
腾讯T3大牛手把手教你,大厂内部资料
案例 ①|主机安全建设:3个层级,11大能力的最佳实践
在解决了 2961 个用户反馈后,我做出了这样的改变...
(3) Web security | penetration testing | basic knowledge of network security construction, IIS website construction, EXE backdoor generation tool quasar, basic use of
Swiftui game source code Encyclopedia of Snake game based on geometryreader and preference
腾讯Android面试必问,10年Android开发经验
随机推荐
mod_ WSGI + pymssql path SQL server seat
Standardized QCI characteristics
Interpretation of Dagan paper
RT-Thread 组件 FinSH 使用时遇到的问题
腾讯T3大牛手把手教你,大厂内部资料
Transformer model (pytorch code explanation)
理解 YOLOV1 第二篇 预测阶段 非极大值抑制(NMS)
HDU 1026 Ignatius and the Princess I 迷宫范围内的搜索剪枝问题
121. The best time to buy and sell stocks
Application of clock wheel in RPC
How to access localhost:8000 by mobile phone
Poj1149 pigs [maximum flow]
MySQL information Schema Learning (i) - - General table
腾讯T4架构师,android面试基础
Period compression filter
Microservice architecture debate between radical technologists vs Project conservatives
Synchronization of data create trigger synchronization table for each site
[translation] Digital insider. Selection process of kubecon + cloudnativecon in Europe in 2022
Finally, there is no need to change a line of code! Shardingsphere native driver comes out
利用 clip-path 绘制不规则的图形