【问题标题】:Spring MVC Generic ControllerSpring MVC 通用控制器
【发布时间】:2012-03-09 14:37:48
【问题描述】:

我的@Controller 中有一个会话范围的 bean:它被称为 SessionPreferences,我希望它的名称能够解释它的作用:-)

几乎我的所有控制器都使用它,所以我很容易通过@Autowired 将它注入到每个控制器中。

我想更深入......我怎样才能避免这种重复?我可以在我的应用程序中有一个“父”控制器,以便存储对服务、其他 bean 等的所有共享引用吗?

【问题讨论】:

  • “深入”是什么意思?

标签: spring spring-mvc


【解决方案1】:

也许控制器实现的抽象类会有所帮助?

不过,如果我理解你的话,你想要一个基本上直接将所有服务和 daos 注入其中的类,那么其余这些类会继承它吗?

当类引用您注入的单例时,这可能会导致 Spring 设置代理的方式出现问题。虽然不是 100% 确定,但可能希望避免这样做。

另外,如果您破坏了您的一项服务,那么从该基类继承的所有控制器都会被破坏,因此不建议这样做。您将控制器与应用程序的太多方面耦合在一起。

【讨论】:

  • @dardo:我只需要让所有控制器都可以使用我的 SessionPreferencesKeeper bean。如果你认为到处注入它比使用控制器继承更好......告诉我:)
  • 个人觉得会更好。这样你就可以让 spring 处理单例上的代理了。如果你从你的所有子类中继承注入,你可能会,我的意思是可能会大声笑,有争用问题
  • 好的,谢谢。我只需要在所有控制器中访问一些默认标准对象。我用 INTERCEPTORS 解决了(仍在尝试......)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-21
  • 2013-04-29
  • 1970-01-01
  • 1970-01-01
  • 2011-07-13
  • 2011-06-09
  • 2013-10-26
相关资源
最近更新 更多