gpt4 book ai didi

java - 获取文件路径 - Hibernate SessionFactory

转载 作者:行者123 更新时间:2023-12-01 09:55:03 27 4
gpt4 key购买 nike

我需要为 hibernate 创建一个 session 工厂,但默认情况下它会查找“hibernate.cfg.xml”文件。 我没有创建这个文件。所有的hibernate配置都在Spring MVC配置的“applicationContext.xml”文件中。我需要做的就是向Configuration类的“configure”方法提供“/WEB-INF/applicationContext”文件路径,但我不知道如何在JAVA中找到该文件的相对路径。

        public static SessionFactory createSessionFactory() {
Configuration configuration = new Configuration();
configuration.configure(HERE I NEED TO GET "/WEB-INF/applicationContext.xml FILE PATH");
serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
configuration.getProperties()).build();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
return sessionFactory; }

最佳答案

hibernate 加载/WEB-INF/applicationContext.xml使用ClassLoader.getResourceAsStream("/WEB-INF/applicationContext.xml")

ClassLoader尝试访问类路径根目录中的文件 - 对于 Web 应用程序来说是 war/WEB-INF/classes/ 。你应该输入 applicationContext.xmlwar/WEB-INF/classes/applicationContext.xml并使用加载它

sessionFactory = new Configuration().configure("applicationContext.xml")
.buildSessionFactory();

您不能指定/WEB-INF/applicationContext.xml ,因为/WEB-INF/不在类路径中。

How Hibernate loads resources

如果你确实想从 /WEB-INF/applicationContext.xml 获取配置你应该得到 URLapplicationContext.xml使用ServletContext : File path to resource in our war/WEB-INF folder?

然后传递URLConfigurationStandardServiceRegistryBuilder ,这取决于 Hibernate 版本。

重要通知

我认为以上毫无意义,因为applicationContext.xml应该具有类似 hibernate.cfg.xml 的结构显然,事实并非如此。

关于java - 获取文件路径 - Hibernate SessionFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37304496/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com