/**
* @author :xxx
* @description:枚举动态获取
* @date :Created in 2021/3/2 17:04 *
* @modified By:
*/
@Component
public class SetEnumUtils {
@Autowired
ProductConfigService productConfigService;
@PostConstruct
public void setConfigure() {
try {
//遍历set所有资源的ID、代码、名称及封面信息(要求代码、ID必须不能为空;另外值如果为空,则赋值空字符串,避免无效定义)
List<ResourceType> list = productConfigService.getResourceTypeAll();
for(ResourceType it: list) {
if (it.getResourceId() > 0 && StringUtils.isNotBlank(it.getResourceCode())) {
//动态加载枚举配置
DynamicEnumUtil.addEnum(ResourceUtils.ResourceID.class,it.getResourceCode(),new Class[]{String.class},new Object[]{it.getResourceId().toString()});
DynamicEnumUtil.addEnum(ResourceUtils.ResourceCode.class,it.getResourceCode(),new Class[]{String.class},new Object[]{it.getResourceCode()});
}
}
} catch (Exception e) {
}
}
}
PostConstruct在构造函数之后执行,init()方法之前执行;
他是Java自己的注解,对象被构造前执行,AutowiredAnnotationBeanPostProcessor 扫描 Spring 容器中所有 Bean,他在扫描到的时候执行的。
网友评论