Spring Integration Test注入PersistenceContext

时间:2015-01-22 12:23:11

标签: java spring hibernate spring-mvc dependency-injection

我在我们的Spring MVC应用程序中集成了Hibernate Search。

因此我们有一个" BuildSearchIndex"在应用程序开始时调用以创建搜索索引的类:

@Component
public class BuildSearchIndex implements ApplicationListener {

    @PersistenceContext(unitName = "entityManagerFactory")
    private EntityManager _entityManager;

    @Override
    public void onApplicationEvent(ApplicationEvent event) {
        try {
            FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(_entityManager);
            fullTextEntityManager.createIndexer().startAndWait();
        } catch (InterruptedException e) {
            System.out.println("An error occurred trying to build the search index: " + e.toString());
        }
        return;
    }
}

在正常应用程序运行中,一切都很好。

但是当我尝试启动Integration测试时,我总是得到一个IllegalArgumentException,EntityManager为null。

IntegrationTest的类定义如下所示:

@ActiveProfiles("test")
@WebAppConfiguration
@TransactionConfiguration(defaultRollback = false)
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
public class DummyServiceIntTest extends AbstractTransactionalJUnit4SpringContextTests {

}

如何在此集成测试中正确注入实体管理器?

0 个答案:

没有答案