利用回调函数封装资源简化代码,减少重复代码

简单需求:

SpringMVC ModelAndView 需要从配置文件读取资源地址,不封装代码时,需要每个ModelAndView 都从配置文件中读取,造成代码重复。可以用回调函数进行封装:

定义一个接口,具体实现在具体业务中实现:

public interface IModelView {
ModelAndView view(ModelAndView mv);
}

封装一个组件:

@Component
public class ModelView {

@Value("${res.url}")//从配置文件中读取信息
private String resURL;

public ModelAndView getModelView(IModelView view) {
ModelAndView mv = new ModelAndView();
mv.addObject("resURL", resURL);
mv = view.view(mv);
return mv;
}
}

具体业务中调用:

@Autowired private ModelView view;
public ModelAndView wxpaySUCCESS() {
return view.getModelView(
new IModelView() {
@Override
public ModelAndView view(ModelAndView mv) {//实现接口
mv.setViewName("/paysuccess.html");
return mv;
}
});
}

无需在每个业务中重复获取资源信息:

mv.addObject("resURL", resURL);

同样的可以封装更多逻辑。


上一篇:Java -- SpringMVC学习笔记2、视图解析器


下一篇:可能有点长的Spring MVC入门篇,但是学会也许就财富*了呢!