我经常处理使用spring-mvc的非常大的Web应用程序,我发现组织我的URL端点变得越来越难以保持它们的可重构性。按照惯例,我的控制器可能如下所示:
@Controller
@RequestMapping(value = ProtocolController.ROOT_MAPPING)
public class ProtocolController extends BaseController {
public static final String ROOT_MAPPING = "/protocol";
@RequestMapping(value="/management", method = RequestMethod.GET)
public ModelAndView management(){
...
}
}
我可能在应用程序的其他位置有一个视图,其中有一个链接回“管理”页面,因此视图必须构建URL。在我看来,我可以通过模型访问上下文路径(上下文路径被BaseController
注入到模型中),我可以通过ProtocolController.ROOT_MAPPING
访问URL的下一部分,然后访问URL的最后一部分只是一个常规的'弦'。我选择的视图技术是一个定制的内部解决方案,涉及编写原始Java以生成HTML:
String url = model.get("contextPath") + ProtocolController.ROOT_MAPPING + "/management"
问题是,如果我更改了“/ management”端点,我找不到代码中引用它的所有地方。我想我可以用static final
字符串替换字符串文字,就像我对ROOT_MAPPING
一样,但有更清洁的方法吗?是否有用于组织/引用端点的已知设计模式?