实现一个 Spring Base RestController

Implement a Spring Base RestController

我是 Spring 和 Spring-boot 的新手。

我必须实施一些休息服务。

一般来说,我有两种不同类型的这些休息服务,我想创建两个不同的 BaseController 来实现其他特定子控制器的通用逻辑。

例如。我想要一个没有(可能)任何特定服务(GET、POST 等)

的基础控制器(映射基础 url /api/v1/typeA/

我想为每个子控制器扩展这个基本控制器

例如:

  1. ControllerA1 扩展了 BaseControllerA (/api/v1/typeA/EntityA1) 使用 GET、POST 等方法
  2. ControllerA2 扩展了 BaseControllerA (/api/v1/typeA/EntityA2) 使用 GET、POST 等方法

我想要这个是因为,可能我需要每个子控制器的一些通用逻辑(例如授权逻辑、验证逻辑……)

实际上,我想扩展一个 BaseController 并且每个方法都将继承共享逻辑。

如果可能的话,我希望在将请求处理到子控制器时准备经过验证的对象。我的意思是:当我验证一个请求时,我可能需要进行一些查询来检索一些数据。如果验证完成,我想将此数据注入请求,我将可以访问特定的子控制器(无需进行相同的查询)

你能建议我一些例子或信息来实现这个吗?对我的问题有什么建议吗?

您不需要 BaseController。我认为您需要一个 Filter 来实现自定义授权逻辑。您可以将此过滤器添加到请求链中,这样您只需执行一次该逻辑。

下面是一些实现 Filter:

的例子

Filter 不限于实现授权逻辑。您还可以为日志记录添加特定逻辑。