对于多个数据源,Spring会话工厂始终为null

时间:2016-07-23 22:04:52

标签: spring hibernate spring-mvc sessionfactory

我正在尝试通过Spring 4 SessionFactory DI在我的应用程序中@Autowire多个Hibernate SessionFactory。只有一个Datasource(epi)被正确注入,但其他两个Datasources SessionFactory值始终为null。 其中两个是oracle数据库,另一个是DB2。我不确定我做错了什么。

这是我的spring-Datasource.xml

@Transactional("epiTransactionManager")
public class EpiBaseService {

@Autowired
@Qualifier("episessionFactory")
private SessionFactory sessionFactory;

以下是我自动装配SessionFactory的类。

在sessionFactory下面注入完美。

@Transactional("stageDsTransactionManager")
public class StageDsBaseService {
@Autowired
@Qualifier("stageDsSessionFactory")
private SessionFactory sessionFactory;


@Transactional("eveTransactionManager")
public class EveBaseService {

@Autowired
@Qualifier("eveSessionFactory")
private SessionFactory sessionFactory;

对于下面的DS,自动装配的sessionFactory值始终为空。

#! /usr/bin/env python
# -*- coding: utf-8 -*-

请告诉我这里缺少什么。

1 个答案:

答案 0 :(得分:0)

我知道我做错了什么。我正在创建一个服务类的新对象而不是Spring控制器内的@Autowiring。我这样做是为了确保我的sessionfactory不是null,但看起来这不是正确的方法。您必须使用Spring IOC容器在控制器中注入服务类。现在所有sessionFactories都正确连接到指定的数据源。