Если вы используете контейнер сервлета, который поддерживает JNDI, например Tomcat, вы можете сконфигурировать свой класс UserDao как ресурс JNDI, а затем получить к нему доступ через поиск в каталоге JNDI.Это обеспечит уровень косвенности, но зависит от внешней конфигурации.
Другой вариант - включить DI-фреймворк, такой как Tiger или Guice, если вас не интересует Spring-DI.
Но инъекция по своей природе требует некоторой формы структуры внедрения зависимостей для ее поддержки.В противном случае вы просто идете:
def dao = new UserDao()