我有一个新的 SpringBoot 项目,我使用 gradle 作为构建管理器和 Eclipse IDE。
我想使用 hibernate 和hibernate.cfg.xml
文件中的配置,但我得到:
org.hibernate.HibernateException: /hibernate.cfg.xml not found
我把这个文件保存在resources
文件夹中,我也试着把它放到META-INF
文件夹中。
项目结构:
HibernateUtil.java
:
public class HibernateUtil {
private static SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory()
{
try
{
if (sessionFactory == null)
{
sessionFactory = new Configuration().configure().buildSessionFactory();
}
return sessionFactory;
} catch (Throwable ex)
{
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static void shutdown() {
// Close caches and connection pools
getSessionFactory().close();
}
}
2条答案
按热度按时间flvlnr441#
如果要读取resources目录中的文件,则需要使用classloder来获取文件。
静态法
非静力法
如果资源位于
resources
的任何子目录中,则在获取资源时为文件夹路径添加前缀获取META-INF目录中资源的示例
但是spring Boot 自动配置,只需在
pom.xml
中添加依赖项并在application.properties
中提供JPA相关属性即可jecbmhm32#
如果你的应用程序是一个 * web服务 *,那么你应该把
hibernate.cfg.xml
放在WEB-INF
文件夹中。如果你的应用程序是 * 客户端服务 *,那么你应该把你的
hibernate.cfg.xml
放在src
包中。