使用spring.net创建存储库

时间:2010-01-19 10:12:20

标签: spring.net

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

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

2 个答案:

答案 0 :(得分:1)

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

所以有几件事要问:

  1. 哪个对象拥有缓存?存储库,服务还是别的什么?
  2. 你如何使缓存失效?是否在更新持久对象时保持跟踪?
  3. 创建对象的会话的超时值是多少?如何将无效的会话传送到缓存?
  4. 当您说“注册表”时,您的意思是“Windows注册表”吗? (上帝禁止,请这样“不”。)
  5. 在Spring for Java EE中,通常可以使用Hibernate和EhCache进行可配置的缓存。如果您使用Spring JDBC模板,则必须自己编写。您对存储库使用了哪些实现?

答案 1 :(得分:1)

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

我离开那种方法并将存储库直接注入需要它们的类中。然后,对象的生命周期变得更加清晰。

你应该看看Spring.NET必须提供的other scopes