Я думаю, что лучший способ сделать это:
<%
def myService = grailsApplication.mainContext.getBean("myService");
%>
Таким образом, вы получаете экземпляр службы, не теряя автоматические услуги.
Из Рекомендации по именованию пространств имен :
Общее правило именования пространств имен использовать название компании, за которым следует название технологии и, возможно, особенность и дизайн следующим образом. Копировать Код
CompanyName.TechnologyName [.Feature] [. Design]
Как правило, начинать включать объекты в пространство имен по умолчанию фреймворка или библиотеки - это действительно плохая практика. Это может вызвать путаницу с точки зрения того, является ли новое пространство имен частью существующей библиотеки, которая является частью структуры, которая распространяется для всех, или частью пользовательской структуры, которая была добавлена кем-то другим.
Кроме того, именование соглашение пытается избежать конфликтов пространства имен, используя уникальные идентификаторы, такие как CompanyName
. Это также уменьшает путаницу и проблемы с точки зрения источника новой библиотеки.
Это не только вещь Microsoft, но также и Java. Пространства имен в Java, называемые «пакетами», имеют следующее соглашение :
Префикс уникального имени пакета - всегда пишется строчными буквами ASCII буквы и должен быть одним из доменные имена верхнего уровня, в настоящее время com, edu, gov, mil, net, org или один из Английские двухбуквенные коды, идентифицирующие страны, указанные в стандарте ISO 3166, 1981.
Последующие компоненты пакета название варьируется в зависимости от собственное внутреннее именование организации условности. Такие соглашения могут укажите это определенное имя каталога компоненты быть подразделением, отделом, имя проекта, компьютера или логина.
Итак, если бы у меня была супер-классная программа, она могла бы быть в пакете net.coobird.superawesomesoftware
.
И использовать имена пакетов, содержащие по умолчанию java.
, javax.
, com.sun.
пакеты - большой запрет.