gpt4 book ai didi

Java Web 应用程序 - 属性文件噩梦

转载 作者:行者123 更新时间:2023-12-01 23:13:01 24 4
gpt4 key购买 nike

我最近开始开发一个设计和开发很差的 Web 应用程序。我发现它使用了大约 300 个属性文件,并且所有属性文件的读取方式都有点像这样:

Properties prop= new Properties();
FileInputStream fisSubsSysten = new FileInputStream("whatever.properties");
prop.load(fisSubsSysten);

也就是说,它正在从当前工作目录读取属性文件。另一个问题是开发人员选择在同一个 java 文件中多次使用上述行。例如,如果有 10 个方法,则每个方法都会有上述代码,而不是只有一个方法并在需要时调用它。

这意味着,我们永远无法更改属性文件的位置,目前它们直接位于 websphere profile 目录下,这不是很难看吗?如果我将它们移到其他地方,并在类路径中设置该位置,则它不起作用。

我尝试使用 Spring IO utils 库更改上面的行:

    Resource resource = new ClassPathResource("whatever.properties");
Properties prop = PropertiesLoaderUtils.loadProperties(resource);

但是这个应用程序有超过 1000 个文件,我发现不可能更改每个文件。您将如何重构这个困惑的局面?有什么简单的方法吗?

谢谢!

最佳答案

在这些“重构”的情况下,我使用简单的查找和替换方法。 Notepad++ 具有“在文件中查找”功能,但还有很多类似的程序。

创建一个类,该类使用可能带有属性文件名称参数的方法来加载属性。这可以是 java 单例或 spring bean。

搜索所有“new Properties()”行并将其替换为空行。

将所有“load...”行替换为对新类/方法的引用。 Notepad++ 支持正则表达式替换,因此您可以使用文件名作为参数。

完成后,转到 Eclipse 并启动“清理”或“组织导入”,并根据需要手动修复一些编译错误。

这种方法非常简单,如果你幸运的话,花费的时间不会超过 10 分钟,如果你运气不好的话,花费的时间不会超过 1 小时。代码格式是这样的,每个文件看起来都不同。

如果您之前使用 300 或更多的行长度格式化项目一次,则可以使替换更简单,这样每个 java 语句都在一行上。这使得查找和替换变得更容易,因为您不需要考虑换行符。

关于Java Web 应用程序 - 属性文件噩梦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21566818/

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