1

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

我想知道的是,我必须做什么才能在非 Web 应用程序中使用我的休眠数据库层?

我有一个独立的java应用程序(通过main运行),我以编程方式加载spring的应用程序上下文,然后获取我的服务层(这取决于我的hibernate db层)。我需要在我的 spring.xml 文件中做任何特别的事情来设置休眠的会话吗?

在我的 spring mvc web 应用程序中,我确实使用 @Transactional 注释对我的 Dao 方法进行了注释。(我希望在每次调用的基础上进行交易,而不是一组数据库调用)。

PS 在我的网络应用程序中,会话是如何创建/销毁的,是每个请求吗?

4

1 回答 1

3

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

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

因此,从这一点来看,hibernate 没有依赖关系,它应该会自动工作。这里只是视图发生了变化,没有逻辑或结构变化。所以交易和其他事情应该像往常一样工作。

于 2012-04-27T14:30:39.080 回答