Хотя этот или подобные вопросы уже задавались для более старых версий Grails, мне интересно, как лучше всего получить доступ к значению конфигурации из application.yml
в доменном классе Grails с современными версиями Grails 4.0.3.
Итак, допустим, у нас есть voucher.groovy
вроде
class Voucher implements HibernateEntity<Voucher> {
...
Date reservedAt
static transients = ['validUntil']
Date getValidUntil() {
Integer expirationTime = // TODO: fill in the configuration value
DateTime expirationDateTime = new DateTime(this.reservedAt)
.plusDays(expirationTime)
.withHourOfDay(23)
.withMinuteOfHour(59)
.withSecondOfMinute(59)
.withMillisOfSecond(999)
return expirationDateTime.toDate()
}
}
и значение конфигурации с именем voucher.expirationTime
в нашем application.yml
лайке
...
voucher.expirationTime: 10
...
Как я могу получить доступ к значению конфигурации в моем методе getValidUntil()
?
ИЗМЕНИТЬ
Как упомянул в своем комментарии @JeffScottBrown, вы не должны получать доступ к значениям конфигурации в своем классе домена. Так что я остановился на предложенном им подходе с использованием пользовательского тега gsp. (см. ответ ниже)
@Value
. - person Jeff Scott Brown   schedule 23.07.2020validUntil
в gsp. Имеет ли смысл получить доступ к значению конфигурации в представлении или, скорее, получитьVoucher
через службу и добавить дополнительные переходные значения в эту службу? - person feuernurmitm   schedule 23.07.2020@Value
. Это исключает логику из вашего GSP, и это хорошо. - person Jeff Scott Brown   schedule 23.07.2020