为什么Spring允许私有方法上的控制器注释请求映射?

时间:2011-09-06 15:18:46

标签: spring spring-mvc

今天刚刚参加了Spring MVC cotnroller课程,

    @RequestMapping(value = { "/foo/*" }, method = { RequestMethod.GET})
    private String doThing(final WebRequest request) {
        ...
        return "jsp";
    }

这使得编写测试变得有点困难,我可能会将其更改为公开但是允许在私有方法上进行映射的重点是什么?

2 个答案:

答案 0 :(得分:4)

Java没有提供基于访问修饰符来限制注释目标的机制。

答案 1 :(得分:0)

正如 @ smp7d 所述,Java并不限制基于访问修饰符的注释的目标,但是从句法上来讲, @RequestMapping 不适用于私有方法。我们也不能限制它,因为它会破坏向后兼容性。因此,您可以将方法定义为 public ,也可以创建自己的自定义实现。

看看这个:Spring's @RequestMapping annotation works on private methods