我有一个依赖于名为application1的应用程序的公共项目。我以这种方式配置xmls,每个项目都有一个不同的jdbc属性文件(不同的文件名),它指向不同的数据库。 Postgres和MySQL。我创建了以下代码段:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/applicationContext.xml", "/common-applicationContext.xml"})
@Transactional
public class AppTest extends AbstractTransactionalJUnit4SpringContextTests{
static Logger log = Logger.getLogger(App.class.getName());
@Resource(name = "testDao")
private IDAO dao;//Traces testDao, which originates in common package
@Resource(name = "testApplication1Dao")
private IDAO daoApplication1;//Traces dao from application1 package
@Test
public void AppContextTest(){
SessionFactory sf1 = dao.getHibernateTemplate().getSessionFactory();
SessionFactory sf2 = daoApplication1.getHibernateTemplate().getSessionFactory();
为什么用eclipse调试,我看到dao和daoApplicatio1是同一个对象?他们应该吗? 如何在屏幕上打印每个dao对象后面的连接和属性?
提前致谢
修改(1)
来自普通项目:
import org.springframework.stereotype.Repository;
@Repository("testDao")
public class TestDao extends AbstractDao {}
来自application1项目:
import org.springframework.stereotype.Repository;
import gr.org.infrastructure.common.db.AbstractDao;
@Repository("testApplication1Dao")
public class TestApplication1Dao extends AbstractDao {}
和AbstractDao是IDAO(界面)的扩展,没有什么是古怪的......:
@Transactional(propagation=Propagation.REQUIRED)
public abstract class AbstractDao implements IDAO {
private HibernateTemplate hibernateTemplate;
private boolean rollbacked;
public AbstractDao() {
super();
this.rollbacked = false;
// TODO Auto-generated constructor stub
}
答案 0 :(得分:0)
显然已经解决了这个问题,我可以同时在spring / hibernate应用程序中同时使用两个单独的连接。如果有人有兴趣请给我留言。