在一个独立的Java应用程序中移植我的休眠Dao层?

时间:2012-04-27 14:25:14

标签: java spring hibernate spring-mvc

我有一个使用Hibernate的spring mvc应用程序。 我在我的Dao方法中使用sessionFactory.getCurrentSession(不是hibernate支持)。

我想知道的是,我需要做些什么才能使用我的hibernate数据库层 在非Web应用程序中?

我有一个独立的java应用程序(通过main运行),我加载了spring的应用程序上下文 以编程方式然后获取我的服务层(这取决于我的hibernate数据库层)。 我是否需要在spring.xml文件中执行任何特殊操作来设置hibernate的会话?

在我的spring mvc web app中,我使用@Transactional注释注释了我的Dao方法。 (我想基于每个呼叫进行交易,而不是一组数据库调用)。

P.S在我的网络应用程序中,如何创建/销毁会话,是否按请求?

1 个答案:

答案 0 :(得分:3)

您可以从主要方法获取弹簧ApplicationContext。它的行为与网络中的行为完全相同。

ApplicationContext context = new  ClassPathXmlApplicationContext("applicationContext.xml");
YourDAO yDao = (YourDAO)context.getBean("yourDAO");
yDao.callYourSpecialMethod();

因此,从这一点来看,hibernate没有任何依赖性,它应该自动运行。这里只是视图变化,没有逻辑或结构变化。所以交易和其他事情应该照常运作。