2010-03-31 61 views
1

我一直在开发一个项目,在这个项目中,我设计了我的代码,在连续指定的时间间隔后完成相同的工作。想要完成的工作有很多不同的周期。间隔很小,通常执行它们,因此我使用线程。在那之前,一切都清楚了。Java Session Like Object

为了减少进程和信息事务,我想把像会话这样的会话保存给定的数据,并随时提供给任何线程。有了这个对象,我计划不要每次都从数据库查询相同的配置信息,但是如果它存在于会话中,则需要查询并存储会话。

我不知道如何实现这个结构。

问候,

回答

1

这取决于。用Java保存和传递信息有几种方法。

  1. 全程范围:声明它static和/或加载它在static {}
  2. Threadlocal:利用ThreadLocal<T>
  3. 对象:将数据放入您刚刚创建的包装对象(javabeans?)中,并作为c'tor /方法参数传递。

就你而言,我认为1或3是适用的。一个真正的“会话”通常是线程本地的,但是你的功能需求(“随时提供给任何线程”,“配置信息”)让我觉得你更喜欢寻找一个应用程序范围内的常量。

+0

1.我不想直接使用共享内存。 2. 3.我正在检查。 – scriptmonster 2010-03-31 17:02:27

+0

好吧,然后去3.有一个“母亲”的线程或对象,其中你存储这些信息并作为c'tor/method参数传递给另一个线程。 – BalusC 2010-03-31 17:03:44

+0

正如你所提到的,我需要一个可以从应用程序中的任何对象访问的应用程序范围对象。 我调查了你提到的所有方法。起初我问这个问题,看看用这个对象可以从所有对象中使用的方法。但第三种方式似乎是我的情况最好的。 – scriptmonster 2010-04-02 11:33:53