Sto provando a creare un semplice progetto Grails 3 e sono rimasto bloccato con qualcosa di veramente semplice. Quindi voglio che le mie proprietà dell'origine dati provengano dalle opzioni VM impostate nel mio IDE IntelliJ. Prima in Grails 2.x, ho solo usato per fare qualcosa di simile:convertire il file di configurazione application.yml in application.groovy in Grails 3.x
environments {
development{
//Database connection properties
def dbserver = System.properties.getProperty('dbserver')
def dbport = System.properties.getProperty('dbport')
............
dataSource {
url: "jdbc:sqlserver://${dbserver}:${dbport};databaseName=${dbname}
}
}
Ora che ho application.yml, come faccio ad accedere "System.properties" e incorporarlo in yml? Ho letto che siamo in grado di utilizzare invece application.groovy se YML non lo supporta, in questo caso è ciò che l'application.groovy assomiglia:
grails {
profile = 'web'
codegen {
defaultPackage = 'defPack'
}
}
info {
app {
name = '@[email protected]'
version = '@[email protected]'
grailsVersion = '@[email protected]'
}
}
spring {
groovy {
template['check-template-location'] = false
}
}
hibernate {
naming_strategy = 'org.hibernate.cfg.DefaultNamingStrategy'
cache {
queries = false
}
}
grails {
mime {
disable {
accept {
header {
userAgents = ['Gecko', 'WebKit', 'Presto', 'Trident']
}
}
}
types {
all = '*/*'
atom = 'application/atom+xml'
css = 'text/css'
csv = 'text/csv'
form = 'application/x-www-form-urlencoded'
html = ['text/html', 'application/xhtml+xml']
js = 'text/javascript'
json = ['application/json', 'text/json']
multipartForm = 'multipart/form-data'
rss = 'application/rss+xml'
text = 'text/plain'
hal = ['application/hal+json', 'application/hal+xml']
xml = ['text/xml', 'application/xml']
}
}
urlmapping {
cache {
maxsize = 1000
}
}
controllers {
defaultScope = 'singleton'
}
converters {
encoding = 'UTF-8'
}
views {
default { codec = 'html' }
gsp {
encoding = 'UTF-8'
htmlcodec = 'xml'
codecs {
expression = 'html'
scriptlets = 'html'
taglib = 'none'
staticparts = 'none'
}
}
}
}
dataSource {
pooled = true
jmxExport = true
driverClassName = 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
dbCreate = ''
username = 'someUsername'
password = 'somePass'
}
environments {
development {
dataSource {
url = 'jdbc:sqlserver://localhost:1234;databaseName=someDbName;'
}
}
}
Grazie.
UPDATE:
application.groovy non è stata presa per impostazione predefinita, anche quando ho rimosso application.yml
Per l'ultima parte, che avrebbe dovuto citarli: 'useragents = [ 'Gecko', 'WebKit'] ' –
@IanRoberts, grazie aggiornerò il mio post. –