我的问题用这些来表达
两张图片。
在第一个中,hibernate的 configuration.configure()方法加载
来自src文件夹的文件,如红色箭头所示
在第二张图片中,
显示 Log4j 的 PropertyConfigurator.configure()方法从
加载文件项目的根文件夹,再次用红色箭头表示
在这两个项目中,只有这个设置有效,没有其他设置可以正常工作。
感谢您的帮助。
答案 0 :(得分:1)
Eclipse没有做任何事情,它是所有JVM。如果您使用命令行或其他IDE,结果将是相同的。
不同的程序在2个示例中不同地加载配置。
src
中的原因。sourcode of Hibernate's Configuration#configure(String)
FileInputStream
。由于您提供了相对路径,因此它会查找相对于项目根目录的文件答案 1 :(得分:1)
加载hibernate.cfg.xml
configuration.configure(hibernate.cfg.xml)
表示您的hibernate配置文件“hibernate.cfg.xml”位于项目类路径的根目录。即使您未在configure()方法中传递配置文件名,它也能正常工作,但在这种情况下,名称应为hibernate.cfg.xml。
如果要将此配置文件放在不同的目录中,则需要执行以下操作
new Configuration().configure("/com/config/hibernate.cfg.xml")
加载log4j.properties
加载log4j.properties也以类似的方式工作。
如果您想将log4j.properties放入com - > config 源文件夹,您可以执行以下操作
PropertyConfigurator.configure("classpath:com/config/log4j.properties");