Spring MVC 避免在URL中硬编码

egmofgnx  于 2023-03-30  发布在  Spring
关注(0)|答案(1)|浏览(134)

通用工具包

public class GeneralUtils {    

    public static String getUrlWithId(String urlsPartStr) {
        // Get a relative URL like /delete/{id} .
        String result = String.format("%s/{id}", urlsPartStr);
        return result;
    }
}

UrlsParts

public class UrlsParts {   

    public static final String delete = "/delete";

    public static final String deleteById = GeneralUtils.getUrlWithId(delete);

}

主计长

@PostMapping(UrlsParts.deleteById)
public String delete(@PathVariable Integer id,
                     Model model) {
    authorRepository.deleteById(id);

    return "redirect:" + Urls.AUTHORS_LIST.getHref();
}

问题

我想以某种方式避免硬编码的网址。但我似乎已经失败了。为什么它不是恒定的是一个谜给我。但无论如何,这似乎并不工作。
项目中有很多实体。我会为每个实体组织CRUD操作。硬编码将违反DRY原则。
你能帮助我理解在这种情况下如何避免硬编码吗?

czq61nw1

czq61nw11#

我想“PathVariable”符合您的要求。
例如
变化

@PostMapping(UrlsParts.deleteById)

@PostMapping("/delete/{id}")

相关问题