自学内容网 自学内容网

项目实战:使用枚举类优化-yml文件中各种配置的读取方式

引用: 

      最近在写前端项目的时候,需要跳转一些链接,打开新的页面,由于测试环境和正式环境的地址都有所不同,于是我通过在配置文件里面进行配置链接,通过接口进行动态的访问获取不同的链接。因为每次获取的链接地址有所不同,我又不想 一直使用if else  进行判断。于是想到了使用枚举类配和 spring 组件 来 进行优化。

具体代码如下:

 LectureUrl 枚举类:

@Getter
public enum LectureUrl {

    TYPE1("1"),
    TYPE2("2"),
    TYPE3("3");

    private final String code;

    LectureUrl(String code) {
        this.code = code;
    }

    public String getConfigValue() {
        return LoaderConfig.CONFIG_MAP.get(this.code);
    }

    public static String getConfigByCode(String code) {
        if (StrUtil.isBlank(code)) {
            throw new BusinessException("参数不能为空");
        }
        for (LectureUrl myEnum : LectureUrl.values()) {
            if (myEnum.getCode().equals(code)) {
                return myEnum.getConfigValue();
            }
        }
        return null; // 如果找不到,返回 null 或自定义异常
    }
}

 LoaderConfig 读取配置文件

@Component
public class LoaderConfig {

    @Value("${lecture.publishLectureUrl}")
    private String publishLectureUrl;

    @Value("${lecture.invitedApplicationUrl}")
    private String invitedApplicationUrl;

    @Value("${lecture.lectureChangeUrl}")
    private String lectureChangeUrl;

    @Value("${ly.weda.host}")
    private String host;

    public static final Map<String, String> CONFIG_MAP = new HashMap<>();

    @PostConstruct
    public void init() {
        CONFIG_MAP.put("1", publishLectureUrl);
        CONFIG_MAP.put("2", invitedApplicationUrl);
        CONFIG_MAP.put("3", host + lectureChangeUrl);
    }
}

调用:

    public String getLecturePageUrl(String type) {
        return LectureUrl.getConfigByCode(type);
    }

 

 


原文地址:https://blog.csdn.net/XikYu/article/details/144061370

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!