使用Spring @Controller构造型保持方法可见性的最佳实践

gav*_*koa 4 java spring coding-style spring-mvc pmd

我当前作业的项目使用私有访问修饰符来处理MVC控制器的方法:

@Controller
public class HelloWorldController {

    @RequestMapping("/helloWorld")
    private ModelAndView helloWorld() {
Run Code Online (Sandbox Code Playgroud)

我已经集成了PMD,他的报告有很多:

/src/main/java/com/web/controller/SignalController.java:91: Avoid unused private
                                            methods such as 'handleNewRequest()'.
Run Code Online (Sandbox Code Playgroud)

因此,我认为将控制器的方法可见性更改为公共,而不是禁用有用的PMD规则.

是否有任何理由将控制器的方法保密

JB *_*zet 6

你将自己私有化,从而使自己陷入困境:

  1. 它被PMD和IDE视为未使用(并且,传统上,它也调用了所有其他私有方法).因此,您或同事可能会错误地删除实际使用的私有方法.
  2. 这使得对它们进行单元测试变得更加困难.
  3. 这是非常规的,使您的代码看起来对经验丰富的Spring开发人员来说很奇怪.
  4. 它们在逻辑上是公开的,因为它们是由类和包之外的代码调用的.