Мы создали веб-приложение в Grails / Groovy. В Groovy мы создали подключаемый компонент кэширования для обеспечения кэширования больших потоков HTTP-ответов в приложении Grails. Мы хотим внедрить реализацию кэша во время выполнения в зависимости от среды, например, когда разработчик выполняет какую-то локальную работу, внедряет простой кэш на основе карты, но в операционной среде, внедряет базу данных кэша RDBMS, вы понимаете.
Мы нашли эту ссылку в учебнике Grails, в котором используется SWITCH, и, похоже, он работает, но он уродлив и громоздок. У нас есть более 5 различных сред (local, dev, test, uat и prod), и нам нужно внедрить классы, специфичные для среды, в другие части нашего кода, поэтому этот подход определенно не идеален. Есть ли альтернативы? Примеры будут оценены, спасибо!
//from resources.groovy
beans = {
switch(Environment.current) {
case Environment.PRODUCTION:
cacheBean(com.util.OracleCacheImpl) {
//properties here
}
break
case Environment.LOCAL:
cacheBean(com.util.MockMapCache) {
//properties
}
break
}
}