java - 将我的 hibernate Dao 层移植到独立的 Java 应用程序中?

标签 java spring hibernate spring-mvc

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

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

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

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

P.S 在我的网络应用程序中, session 是如何创建/销毁的,是根据请求进行的吗?

最佳答案

您可以从 ma​​in 方法获取 spring ApplicationContext。它的行为与网络中的行为完全相同。

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

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

关于java - 将我的 hibernate Dao 层移植到独立的 Java 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10352467/

相关文章:

java - Autowiring 子类但使用父类作为引用

java - 通过REST API处理ManyToOne实体集合的更新

java - 如何使用 @Transactional 注释测试方法

java - 具有太多 Observable 的 RxJava1 StackOverflow 异常

java - 以更有效的方式替换字符串中的一组子字符串?

java - 并发加载文件时如何确定线程数

spring - 如何使用Hibernate JPA和Spring Framework启用加载时间/运行时编织

java - 匹配字符串而不是单词的正则表达式

spring - 如何订购@Aspect

java - Spring jpa实体和动态调度