Question: I want to read a String from database and replace the placeholder by converting it to a GString. Can I do this with Eval? Any other ideas?

```
String stringFromDatabase = 'Hello ${name}!'
String name = 'world'

assert 'Hello world!'== TODO

```

Answer: 
This also uses the Templates as Jacob's answer, but tries to resolve binding from current variables. Useful if you don't know what value you are replacing:

```
String stringFromDatabase = 'Hello ${name}!'
// variables w/o type or def keyword end up in this.binding.variables
name = 'world'

def engine = new groovy.text.SimpleTemplateEngine()
assert 'Hello world!'== engine.createTemplate(stringFromDatabase).make(this.binding.variables).toString()

```

CAVEAT: variables that can be replaced don't have type or def keyword.
You should be using double quoted String literal if you want to use place holders.

The following should work:

```
String name = 'world'
String stringFromDatabase = "Hello ${name}!" //use double quotes

assert 'Hello world!' == stringFromDatabase

```

See the [official Groovy documentation about Strings](http://docs.groovy-lang.org/latest/html/documentation/index.html#all-strings) to see other ways you can make this work.