gpt4 book ai didi

arrays - Grails-与域相关的属性的存储位置

转载 作者:行者123 更新时间:2023-12-02 14:03:32 24 4
gpt4 key购买 nike

这是我一段时间以来一直在努力的事情。问题是:我有许多(大约20个)静态值数组。我说静态的是因为这实际上是我将它们存储为某些域内的静态数组的方式。例如,如果我有一个已知网站的列表,则可以:

class Website {
...
static websites = ["web1", "web2" ...]
}

但是我只是在开发时这样做,因为我可以根据需要轻松更改阵列,但是当应用程序准备好进行部署时我将要做什么?在我的项目中,很有可能这些值的数组在某些时候发生了变化。我一直在研究这一问题,可以将应用程序属性存储在一个外部.properties文件中,但是不可能存储一个数组,即使是徒劳的,因为如果某个数组获得了附加值,则应用程序将无法识别它。直到在需要的地方添加新属性的名称。
另一种方法是将这些信息存储在数据库中,但是由于某种原因,添加20个或更多只包含两行(一个ID和一个名称)的表似乎是一种浪费。
据我所知,最后一个选择是XML,但是我对这些没有很丰富的经验。 groovy似乎具有相对容易地创建和读取XML文件的方式,但是我不知道修改在应用程序中预定义了布局的XML会有多么困难。

不用说,将它们存储在config.groovy中不是一个选择,因为任何更改都需要重新编译。

我还没有遇到过处理这些问题的“标准”(也许是最佳实践?)方法。

因此,问题是:将这些数组存储在哪里?

最佳答案

  • Enum用于一组固定的属性。如果您在代码中的某些地方依赖某些具体值,请执行此操作。
  • 如果您不依赖代码中的属性(您显然不依赖),请使用String -type。在这种情况下,如果需要提供选择框,只需对数据库中的此属性执行distinct -query即可。
  • 默认值:每个动态属性集使用一个域类。另一个表还可以。
  • 关于arrays - Grails-与域相关的属性的存储位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10132428/

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