Wednesday, June 16, 2021

Grails: inject bean from a config file (via grailsApplication) in resources.groovy directly without BootStrap.groovy

I used to do this: resources.groovy:

beans = {
        envSettings(ConcurrentHashMap) {bean ->
        /* k: String, v: String */
    }
}
And then in BootStrap.groovy:

String label = grailsApplication.config.getProperty('envSettings.label', String, 'N/A')
Boolean nonProd = grailsApplication.config.getProperty('envSettings.nonProd', Boolean, true)
envSettings["label"] = label
envSettings["nonProd"] = nonProd
It looks like we can do that without BootStrap.groovy. It's sooo simple. resources.groovy:

beans = {
	prefixDflt String, grailsApplication.config.getProperty("prefix.dflt", String, "")
}

Saturday, January 9, 2021

Transact-SQL percentage

DECLARE @t TABLE (id INT PRIMARY KEY, name VARCHAR(10), amount INT)
INSERT INTO @t VALUES (1,'apple',10)
INSERT INTO @t VALUES (2,'pear',20)
INSERT INTO @t VALUES (3,'plum',50)
SELECT 
t.id,
t.name,
t.amount,
CAST(t.amount AS FLOAT)/SUM(amount) OVER () AS [percent]
FROM @t t