2013-02-17 82 views
3

使用继承研究Spring MVC中使用继承。在Spring MVC 3.1

是它有一个基本的控制器,其他控制器可以扩展一个好主意?

的基本控制器将持有通用的功能给所有controllers.For如得到一个句柄登录用户等

如果使用基本控制器是不是一个好主意是否有任何其他建议执行类似上面提到的内容。

回答

2

它是完全可以接受的具有基部控制器,其它控制器可以延长。当Spring引入@Controller注释时,他们为您使用任何您想要的类层次结构铺平了道路。

要知道,作为一个面向对象的设计原则,这是很好的有利于对继承组成。作为一个经验法则(不是硬性规定),我会建议将您的通用控制器的代码放到一个类,其接口可通过@Inject or @Autowired注入到你的控制器。

用于获取句柄到登录的用户的另一个建议是多一点的工作,但非常漂亮,一旦你拥有了它。请参阅关于使用current user annotation on your controller method arguments的讨论。这就是我在我的项目上做的,它很棒!

+0

谢谢您的输入Jay.But如果我做了共同的代码使用的组合物中的一类,我仍然需要注入每controller.I会看着你shared.If你想到的任何其他的想法链接请分享。 – souser 2013-02-17 20:03:34

+1

你必须考虑你的选择和应用的设计原则,以你自己的情况。如果你有很多控制器,使用继承可能更有意义。 – Jay 2013-02-18 15:10:50

+1

如果你去继承路线的另一个想法是保持继承的方法(S)非最终,这样就可以在单元测试覆盖它(比如说,而不是返回调用静态安全方法的模拟用户对象)。这将缓解单元测试而不使用依赖注入。 – Jay 2013-02-18 15:11:54