За структурой каталогов по большей части следуют все приложения, поскольку артефакты определяются главным образом их корневой папкой.Имена классов контроллеров оканчиваются на «Controller», а у меток и сервисов есть похожие соглашения об именах, но у классов доменов нет никаких ограничений имен.Таким образом, именно местоположение в grails-app / domain определяет класс groovy как класс домена.
Однако Grails позволяет приложениям и плагинам определять дополнительные типы артефактов, и это то, что вы видите с «заданиями».папка.Это создано плагином Quartz.Я делаю нечто подобное в плагине динамических контроллеров, где я добавляю новую папку controllerMixins в grails-app, где хранятся классы микширования контроллеров.
Преимущество создания нового артефакта вместо хранения кода в src / groovyчто просто поддерживать перезагрузку в режиме разработки, и она логически группирует код, а не сбрасывает все в одну папку (src / groovy) и полагается на пакеты, чтобы держать вещи отдельно.У вас также есть быстрый доступ ко всем артефактам любого типа.application.getDomainClasses()
возвращает все классы домена, но метод динамически разрешается, поэтому, если у вас установлен Quartz, вы автоматически получаете поддержку application.getJobClasses()
без необходимости регистрировать или настраивать что-либо кроме стандартной регистрации артефактов.