我是Spring和Spring-boot的新手。
我必须实施一些休息服务。
通常,我有两种不同类型的这些Rest服务,我想创建两种不同的BaseController来实现我将对其他特定子控制器使用的通用逻辑。
例如。我想拥有一个基本控制器(以映射基本URL /api/v1/typeA/
),而没有(可能)任何特定服务(GET,POST等)
而且我想为每个子控制器扩展此基本控制器
例如:
/api/v1/typeA/EntityA1
)使用GET,POST等方法/api/v1/typeA/EntityA2
)使用GET,POST等方法我想拥有这个是因为,可能我需要每个子控制器的一些公共逻辑(例如,授权逻辑,验证逻辑,...)
实际上,我想扩展BaseController,每个方法都将继承共享的逻辑。
[如果可能,我将在将请求处理到子控制器中时准备经过验证的对象。我的意思是:也许当我将验证请求时,我将需要进行一些查询以检索一些数据。如果将完成验证,我想将此数据注入请求中,并且可以访问特定的子控制器(无需进行相同的查询)
您能建议我一些例子或信息来实现这一目标吗?关于我的问题有什么建议吗?
您不需要BaseController
。我认为您需要一个Filter
,可以在其中实现自定义授权逻辑。您可以将此过滤器添加到请求链,这样,您只需执行一次该逻辑即可。
以下是实现Filter
的一些示例:
Filter
's不限于实现授权逻辑。您还可以添加特定的逻辑,例如进行日志记录。