Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用checkstyle强制参数出现在任何具有特定注释的方法上_Java_Spring_Checkstyle - Fatal编程技术网

Java 使用checkstyle强制参数出现在任何具有特定注释的方法上

Java 使用checkstyle强制参数出现在任何具有特定注释的方法上,java,spring,checkstyle,Java,Spring,Checkstyle,我希望我的所有rest服务都有一个输入参数HttpServletRequest httpRequest,我以后需要它来记录日志。有时会忘记添加此参数,并且某些方法不会被记录。正如所有rest服务一样,我使用的是Spring,它们都有一些非常特定的注释。我正在考虑使用checkstyles强制参数出现 再多解释一下我想要实现的目标。我正在开发一些rest服务,我对记录一些发送到rest服务的头文件和一些额外信息感兴趣。为此,我向每个rest服务添加了HttpServletRequest,如下所示:

我希望我的所有rest服务都有一个输入参数
HttpServletRequest httpRequest
,我以后需要它来记录日志。有时会忘记添加此参数,并且某些方法不会被记录。正如所有rest服务一样,我使用的是Spring,它们都有一些非常特定的注释。我正在考虑使用checkstyles强制参数出现

再多解释一下我想要实现的目标。我正在开发一些rest服务,我对记录一些发送到rest服务的头文件和一些额外信息感兴趣。为此,我向每个rest服务添加了
HttpServletRequest
,如下所示:

@GetMapping(value = "/{id}", produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.OK)
public Status get(HttpServletRequest request, @PathVariable("id") Integer id) {
       ....
}
这个参数表被正确地检索,我可以正确地读取标题(所有内容都是使用AspectJ自动完成的)。我现在的问题是,对于一个新的rest服务,我忘记添加参数,不会显示任何日志。由于该参数是可选的(您可以或不能添加到rest服务中而不会出现任何错误),并且所有日志记录都由AspectJ自动完成,因此我可能会在将来的rest服务中忘记它,并且直到很晚才注意到遗漏

其范围是确保始终存在于我的所有rest服务中。我的第一个想法是使用checkstyle,因为我已经将其用于其他不同的目的


是否可以使用checkstyle或任何类似工具强制在任何具有注释的方法上存在参数?如果没有,还有其他不同的方法来实现我的目标吗?

这看起来像是单元测试的工作。这并不能直接回答您的问题,但从您的描述来看,您似乎希望对收到的所有请求执行一些操作。对于该用例,在使用Spring时,最好是定义一个Spring过滤器,该过滤器将在一个地方定义要对所有请求执行的操作,而无需在Controllers.interest中放置任何特定于该操作的内容。你能提供更多的信息给我吗?如果需要的话,我可以检查和接受你的答案吗?@KingMidas我认为你的问题很清楚,直到我读到你对一个你会接受的答案的评论。您能否更新您的问题,以澄清您是在为某些任意方法寻找通用解决方案,还是只关心您的特定用例?@skomisa我编辑了该问题以提供额外信息。现在我想这更容易理解我的目标。这似乎是一个单元测试的工作。这并不能直接回答您的问题,但从您的描述来看,您似乎希望对收到的所有请求执行一些操作。对于该用例,在使用Spring时,最好是定义一个Spring过滤器,该过滤器将在一个地方定义要对所有请求执行的操作,而无需在Controllers.interest中放置任何特定于该操作的内容。你能提供更多的信息给我吗?如果需要的话,我可以检查和接受你的答案吗?@KingMidas我认为你的问题很清楚,直到我读到你对一个你会接受的答案的评论。您能否更新您的问题,以澄清您是在为某些任意方法寻找通用解决方案,还是只关心您的特定用例?@skomisa我编辑了该问题以提供额外信息。现在我想这更容易理解我的目标。