grails presentation3
TRANSCRIPT
Groovy y GrailsParte 3
Configuración
Datasources
Permiten establecer configuración personalizada, por ambiente de las fuentes de datos de la aplicación
Grails tiene configurada por defecto una base en memoria
Para cualquier otra configuración que el datasource por defecto Grails deberá importar algún Plugin que incluya los conectores JDBC
Es posible el uso de bases relacionales así como también no relacionales
Datasources
environments {test {
dataSource {dbCreate = "update"url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000"pooled = truedriverClassName = "org.h2.Driver"username = "sa"password = ""
}}production {
dataSource {jndiName = "java:jboss/datasources/nairobiWeb/AppDS"}
dataSource_security {jndiName = "java:jboss/datasources/nairobiWeb/CosmosDS"}
}}
Atributos de Datasource
dbCreate: acepta los valores ‘create-drop’, ‘create’, ‘update’, ‘validate’ o no configurarlo con ninguna de las anteriores
logSql: imprime por consola las consultas SQL de Hibernate
formatSql: da formato a las consultas impresas
readOnly
pooled: por defecto está en true
Build Config
Tiene tres secciones principales: repositories, dependencies y plugins
Tiene 5 scopes de resolución para dependencias: build, compile, runtime, test y provided
Beans
import grails.util.Environmentimport my.company.mock.MockImplimport my.company.MyBeanImpl
beans = {if (application.config.my.company.mockService) {
myBean(MockImpl) {someProperty = 42otherProperty = "blue"}
} else {myBean(MyBeanImpl) {
someProperty = 42otherProperty = "blue"
}}
}
• Se configuran en el archivos resources
• La configuración es por medio de un DSL hecho para Spring
• Permite definir beans utilizando comandos if, switch, etc
• Si se quieren definir por medio del archivo xml, solo se necesita crear el archivo resources.xml en la carpeta spring
Resources
modules = { 'nairobi' { resource url:'css/nairobiWeb.css' resource url:'css/monitoring.css' resource url:'css/bootstrap-datetimepicker.min.css' resource url:'js/post-data.js' resource url:'js/multiple-enable.js' }
'monitorBar' { resource url:'css/monitorBar.css' resource url:'js/jquery.knob.js' resource url:'js/highcharts.js' }}
<head>...<r:require modules="nairobi"/>...
</head>
• Este plugin permite importar archivos, javascript, css, y otras dependencias en la vista
• Su uso facilita la inclusión de varios archivos que están relacionados, y que pueden tener dependencias entre si, de manera más ordenada
• Inclusión diferida de los js
• Previene la inclusión múltiple del mismo recurso