我正在翻新我继承的遗留Java webapp(servlet和JSP)。 webapp发送电子邮件,它使用大约12个电子邮件地址列表。电子邮件地址被硬编码到webapp中。当然,我想把这些电子邮件地址列表放到一个文件中,然后让webapp读取它们。
在过去,我会将这些列表放入webapp根目录中的* .properties文件中。
我猜测属性对象和* .propertie文件不是现代Java方法。
我有一个选择是将每个电子邮件列表作为<context-param>
放入web.xml,<param-value>
是逗号分隔的电子邮件地址列表。然后,我将使用context.getInitParameter()按名称检索每个列表,然后编写一个函数来标记电子邮件并将每个列表放入ArrayList。我的直觉告诉我,它比以前更麻烦。
我希望我的配置文件像属性文件一样非技术用户友好,带有注释,空格,键值对,即
########################################
## This file lists the email lists
#########################################
customerList = joeblow@gmail.com,sara@yahoo.com
managerList = jack@biz.com,jane@bigorg.gov
##########################################
## end of file
##########################################
此类文件将包含12个此类列表,其中包含大约10个不同的电子邮件地址
我知道如何使用Properties类在WAR中找到这样的文件并将其轻松加载到属性对象中。
问题在于如何优雅地从属性对象中获取这12个列表中的每一个,并将其标记为单个ArrayList(具有命名引用)
我是否正确地认为Prooperties课程已经被现代收藏品淘汰了?我猜测的方法是使用Scanner类将文件读取并标记为Map,每个键都是电子邮件列表的名称,每个值都是电子邮件地址的ArrayList。
我不确定如何将所有这些与我上面描述的文件类型放在一起。
任何建议。
我的目标是首先以最简单的方式,然后以最现代的方式(我有一本关于收藏和泛型的书,但我仍在同化它)。
提前感谢任何帮助或想法
史蒂夫
答案 0 :(得分:0)
时髦的答案是使用JSON格式,但如果.properties文件适用于您的用例,请选择它。避免将其存储在web.xml中,因为您的数据大于标准键值参数。
这个java json lib有一些upvotes。 https://stackoverflow.com/questions/338586/a-better-java-json-library/785066#785066