Spring和域对象

时间:2014-07-15 16:44:02

标签: spring

  

不应通过ApplicationContext

创建域对象

这是春季最佳实践中提到的一个提示。

避免Spring控制域对象背后的理由是什么?这是设计模式推荐吗?

3 个答案:

答案 0 :(得分:1)

在大多数情况下,您的域对象代表更改的数据。如果这将通过ApplicationContext创建,则意味着您将操作数据持久化为XML或Java类(通过JavaConfig),而不是例如更适合此类目的的数据库。

我想知道你是否在这里混合了概念。通常,您可以让Spring通过创建@Repository@Service类来控制您的域对象,这些类可以为您实例化并保留域对象。您只需在这些类中使用JdcbTemplate或一些ORM库来处理创建和持久化而不是ApplicationContext,这在大多数情况下都没有意义,正如我在答案的第一部分中所解释的那样。

答案 1 :(得分:1)

通过Spring创建域对象没有很好的原因 ......除了......

请记住该文件已过时。有些技术并不像AOP那样普及。

重点是,除非你需要 Spring提供的东西,比如它的DI或AOP支持,否则没有理由用它来创建每个应用程序对象。另请注意,通过字节码编织,您可以同时执行DI和AOP,而无需通过Spring实例化对象。

归结为使用“正确”工具来完成工作,但“正确”会在各种应用中突然

答案 2 :(得分:0)

Spring作为一个DI框架非常棒,但是如果你开始使用它就会有太多的bean xml配置或者框架要处理的对象,那么使用它来创建域对象也是一种过度的做法。

可能是过度使用,建议避免使用。