是否可以Autowire
JDO PersistenceManager
?
在下面的示例中,只有PersistenceManagerFactory
为Autowired
,而PersistenceManager
是在每次操作之前使用getter和utility方法获得的。
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);
}
}
答案 0 :(得分:0)
看起来不太可能。
如果查看Spring JDO classes overview,您将看到没有返回PersistenceManager的FactoryBean。
当然,您可以轻松地implement a factory bean yourself具有PersistenceManagerFactory类型的依赖项并返回PersistenceManager。
如果您总是希望自动装配当前线程绑定的PersistenceManager(这里是JavaDoc的摘录),您可能希望在内部使用TransactionAwarePersistenceManagerFactoryProxy
目标JDO的代理 PersistenceManagerFactory,返回 当前的线程绑定 PersistenceManager(Spring管理的 事务性PersistenceManager或 单身 OpenPersistenceManagerInView PersistenceManager)on getPersistenceManager(),如果有的话。