我正在尝试找出在Spring MVC应用程序中编写通用逻辑的最佳方法。我有一个控制器A,它将被调用,它将根据返回json数据的请求属性调用任何其他控制器。
我希望在控制器A中返回响应,以便我可以编写通用的浓缩逻辑并将其发送回浏览器。我的意图是只在一个地方写富集逻辑,每个请求都经过它。
答案 0 :(得分:1)
您所寻找的是HandlerInterceptor
或ControllerAdvice
。
我刚才在Github上创建了一个关于Spring MVC Interception的小型存储库,它是一个小型的Spring Boot应用程序,它向您展示了如何使用Spring MVC拦截请求。
问题始终是你的主要目标:
您是否只想操纵输出(例如添加公共字段)?使用ControllerAdvice
。
你想在不操纵请求之前和之后调用逻辑吗?去过滤器。
您是否想要从根本上改变对象(例如用另一个对象包装)?转到HandlerInterceptor
。
答案 1 :(得分:0)
可能是您可以创建抽象控制器类并将常用逻辑或代码放入其中。因此,只要您想使用此公共代码,只需扩展此类并使用它。
例如:
public class AbstractController{
// common logic
}
public class A extends AbstractController{}
public class B extends AbstractController{}
public class C extends AbstractController{}