将配置文件放在JAR中可以吗?

Kal*_*erg 10 java architecture deployment jar

我们正在我的办公室里围绕JAR文件中可以和不可以进行的讨论进行辩论.有人建议将任何不是.class文件的内容放入JAR中是很糟糕的.我们目前有一些Ibatis/etc的XML配置,一些属性文件......通常.但是,需要从JAR中提取所有此类文件并将它们放到每个部署机器的本地文件系统中.这听起来合理吗?

Mic*_*rdt 14

任何不是.class文件的东西进入JAR都是不好的形式

那是胡说八道.实际上,将代码使用的图标和其他数据文件等资源与代码一起放入JAR 中是非常好的形式.这就是getResource()getResourceAsStream()方法Class,并ClassLoader是,它使对更强大的应用程序不是瞎搞与手动资源路径.

但是,配置文件可能是另一回事.如果要在部署期间或之后更改它们,那么将它们放在JAR文件中是相当不方便的,并且将它们放在单独的目录中是可取的.


ten*_*shi 3

这对我来说听起来不合理。我相信,某些应用程序的配置应该在 jar 文件中。诸如 ORM 映射、spring 配置、自定义 spring 命名空间 XSD、其他 XSD 等之类的东西在大多数情况下应该位于 jar 中。它是部署工件的重要组成部分。

事实上,它不是class文件,并不意味着它应该从 jar 中取出,因为理论上它可以在不构建新 jar 的情况下进行修改。您能想象在生产中对 *.hbm.xml 进行修改吗?对我来说这听起来很可怕

我认为某些配置(例如 spring xml)在大多数情况下是为了更好地组织应用程序和依赖项,而不是在生产运行时更改它们。