是否可以Autowire
JDO PersistenceManager
?
在下面的示例中,只有PersistenceManagerFactory
是Autowired
,而PersistenceManager
是在每次操作之前使用吸气剂和实用程序方法获得的。
import org.springframework.orm.jdo.PersistenceManagerFactoryUtils;
@Service
public class MainServiceImpl implements MainService
{
@Autowired
private PersistenceManagerFactory pmf;
private PersistenceManager pm;
public void setPersistenceManager(PersistenceManager pm)
{
this.pm = pm;
}
public void setPmf(PersistenceManagerFactory pmf)
{
this.pmf = pmf;
}
public PersistenceManagerFactory getPmf()
{
return pmf;
}
public PersistenceManager getPersistenceManager()
{
return PersistenceManagerFactoryUtils.getPersistenceManager(pmf, true);
}
}
最佳答案
看起来不太可能。
如果查看Spring JDO classes overview,您会看到不是一个返回PersistenceManager的FactoryBean。
当然,您可以轻松地implement a factory bean yourself具有PersistenceManagerFactory类型的依赖项并返回PersistenceManager。
如果您始终想自动连接当前线程绑定的PersistenceManager,则可能需要在内部使用TransactionAwarePersistenceManagerFactoryProxy(这是JavaDoc的摘录)
目标JDO的代理
PersistenceManagerFactory,返回
当前线程绑定
PersistenceManager(由Spring管理
事务性PersistenceManager或
单身
OpenPersistenceManagerInView
PersistenceManager)
getPersistenceManager()(如果有)。