Вы не создаете новый экземпляр службы при вызове getBean (), просто получаете ссылку на синглтон. Если бин был бином-прототипом, вы бы получили новые экземпляры, но сервисы Grails - не одиночные.
Это не очень «круто», но вы получаете доступ к бинам Spring за пределами артефакта, поэтому вам нужно либо извлекать бины из контекста приложения, как вы делаете, либо передавать бины при вызове HttpTransporter. В идеале вы могли бы переделать свой вызывающий код, чтобы вы указали зависимости, а не извлекали их:
HttpTransporter(URI uri, HttpServletResponse response, utilityService) {
this.uri = uri
this.response = response
this.utilityService = utilityService
}
Если вы не можете этого сделать (вы не показываете вызывающий код, поэтому неясно, будет ли он практичным), тогда да, вам нужно использовать менее элегантный подход.