Estoy desarrollando mi primer complemento Grails. Tiene que acceder a un servicio web. El complemento obviamente necesitará la URL del servicio web. ¿Cuál es la mejor manera de configurar esto sin tener que codificarlo en las clases de Groovy? Sería bueno con diferentes configuraciones para diferentes entornos.Configuración del complemento Grails
Respuesta
Si solo es una opción de configuración pequeña (léase: un elemento), podría ser más fácil sorber en un archivo de propiedades. Si hay varias opciones de configuración, y algunas de ellas deberían ser dinámicas, sugeriría hacer lo que hace el complemento Acegi Security: agregar un archivo a /grails-app/conf/plugin_name_config.groovy quizás.
bono adicional es que el usuario puede ejecutar código groovy para calcular sus opciones de configuración (mucho mejor que usar archivos de propiedades), así como poder hacer diferentes entornos con facilidad.
echa un vistazo a http://groovy.codehaus.org/ConfigSlurper, que es lo que los griales usan internamente para emitir configuraciones como config.groovy.
//e.g. in /grails-app/conf/MyWebServicePluginConfig.groovy
somePluginName {
production {
property1 = "some string"
}
test {
property1 = "another"
}
}
//in your myWebServicePlugin.groovy file, perhaps in the doWithSpring closure
GroovyClassLoader classLoader = new GroovyClassLoader(getClass().getClassLoader())
ConfigObject config
try {
config = new ConfigSlurper().parse(classLoader.loadClass('MyWebServicePluginConfig'))
} catch (Exception e) {/*??handle or what? use default here?*/}
assert config.test.property1.equals("another") == true
Es posible que desee mantenerlo simple (tm). Puede definir la URL directamente en Config.groovy, incluida la configuración por entorno, y acceder desde su complemento según sea necesario utilizando grailsApplication.config (en la mayoría de los casos) o un objeto ConfigurationHolder.config (consulte más información en details in the manual).
Como una ventaja adicional, esa configuración también se puede definir en archivos de propiedades estándar de Java o en otros archivos de configuración especificados en grails.config.locations.
p. Ej. en Config.groovy
// This will be the default value...
myPlugin.url=http://somewhe.re/test/endpoint
environments {
production {
// ...except when running in production mode
myPlugin.url=http://somewhe.re/for-real/endpoint
}
}
más tarde, en un servicio proporcionado por el plugin
import org.codehaus.groovy.grails.commons.ConfigurationHolder
class MyPluginService {
def url = ConfigurationHolder.config.myPlugin.url
// ...
}
- 1. Configuración de HTTPPort para el complemento Jetty Grails
- 2. Deshabilitar el complemento Grails
- 3. Configuración del proyecto Grails en Intellij
- 4. Grails cómo registrar la actividad del complemento de seguridad
- 5. Convierta la aplicación Grails en el complemento
- 6. solicitud de complemento de búsqueda de grails
- 7. Configuración de los complementos de Grails con Nexus Repository
- 8. ¿Cómo acceder a la configuración de Grails en Grails 2.0?
- 9. Validación del lado del cliente de Grails
- 10. Modificar la configuración de POM desde el código del complemento
- 11. Cómo omitir la solicitud de actualización del complemento cuando se ejecuta GRAILS run-app?
- 12. ¿Cómo instalar el complemento Grails desde el código fuente?
- 13. ¿Cómo agrega un complemento de Grails sus propias URLMappings?
- 14. Grails cómo cambiar la configuración regional actual
- 15. configuración simulada en las pruebas Grails
- 16. El complemento Grails Release no está implementando el complemento en un repositorio remoto de maven
- 17. Uso del archivo log4j.properties externo con Grails
- 18. La ejecución del complemento no está cubierta por el error de configuración del ciclo de vida
- 19. Error del complemento: la ejecución no está cubierta por la configuración del ciclo de vida
- 20. La ejecución del complemento no está cubierta por la configuración del ciclo de vida
- 21. Desarrollo del complemento Maven 3.0
- 22. Maven JAXB2 Complemento XJC: ejecución del complemento M2E no cubierto
- 23. grails base.dir propiedad del sistema
- 24. grails/configuración externa/grails.config.locations - archivo de ruta absoluta "No existe"?
- 25. Omitir la configuración proxy de Grails para los repositorios locales
- 26. Complementos en línea de Grails: no se puede actualizar un complemento que se configura mediante BuildConfig.groovy
- 27. ¿Cómo resolver error de recurso de Grails no encontrado para un complemento?
- 28. Sintaxis del filtro de Grails, o, Cómo llamar a un filtro de Grails fuera de Grails
- 29. Externalización de la configuración de origen de datos de Grails
- 30. Configuración de ejecución de IntelliJ para el entorno de Grails
extraña idea de tener el archivo de configuración por separado sólo por una propiedad, 'Config.groovy' debe utilizarse para esa propiedad. – tig
@tig AFAIK, 'Config.groovy' se omite cuando el complemento está empaquetado, y más bien para probar el complemento que para configurarlo, ¿no? – peterp