1

我正在使用 spring.net 创建我的存储库。但是,我想知道这些对象的生命周期是多少。在我的存储库中,从数据库中检索的对象缓存在注册表中。但这应该只发生在单个服务器调用上。您能否在 spring.net 配置中指定应为每次调用服务器创建对象。

我猜 singleton=false 不适合我,因为这每次都会创建一个新的存储库,即使在同一个线程中也是如此。

4

2 回答 2

1

这是一个复杂的问题,因为缓存和注册表的设计开始发挥作用。听起来持久对象的生命周期将由注册表控制,因为它将维护引用。

所以有几个问题要问:

  1. 哪个对象拥有缓存?存储库、服务还是其他?
  2. 您如何使缓存无效?它是否在更新持久对象时进行跟踪?
  3. 创建对象的会话的超时值是多少?如何将无效的会话传达给缓存?
  4. 当您说“注册表”时,您的意思是“Windows 注册表”吗?(上帝保佑,请“不”。)

在 Spring for Java EE 中,通常使用 Hibernate 和 EhCache 获得可配置的缓存。如果您使用 Spring JDBC 模板,则必须自己编写。您为存储库使用什么实现?

于 2010-01-19T10:53:35.833 回答
1

从您以前的帖子中,我看到您将所有存储库放在一个注册表类中以检索它们。

我会放弃这种方法,将存储库直接注入需要它们的类中。然后,您的对象的生命周期变得更加清晰。

您还应该查看Spring.NET 必须提供的其他范围。

于 2010-01-19T13:49:28.350 回答