我在班上自动连线了一个rediservice(@transactional)。我有另一个workerthread类,它实现了runnable,应该使用我以前的类的redis连接来将一些数据存储在db中。如何在工作线程类中使用第一个类的相同rediservice对象?

最佳答案

您可以在resources.groovy中将工作线程作为bean连接起来,并将一个引用传递给redisservice。

workerThread(WorkerThread) {
  redisService = ref('redisService')
}

也就是说,如果您通过依赖注入获得对WorkerThread的句柄。如果您自己实例化它,可以通过static holders类获得spring应用程序上下文的句柄,以手动提取bean:
Holders.grailsApplication.mainContext.getBean("redisService")

后者是一个坏主意,但使这种设想成为可能。
祝你好运!

08-06 15:08