Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Groovy & Grails > Куда в grails класть Bisnes Logic


Автор: Maksys 26.1.2012, 12:27
Здравствуйте, подскажите, пожалуйста, куда нужно класть  Бизнес логику в Grails Projects?
Я пока все свои классы закинул в папку src, но чую что это делается не так.

Автор: Vasay 26.1.2012, 13:33
Цитата(Maksys @ 26.1.2012,  12:27)
Здравствуйте, подскажите, пожалуйста, куда нужно класть  Бизнес логику в Grails Projects?
Я пока все свои классы закинул в папку src, но чую что это делается не так.

А какие функции у Вас выполняет бизнес логика?

http://grails.org/doc/2.0.x/guide/services.html

Автор: Maksys 26.1.2012, 13:59
Цитата(Vasay @  26.1.2012,  16:33 Найти цитируемый пост)
А какие функции у Вас выполняет бизнес логика?http://grails.org/doc/2.0.x/guide/services.html

Ну вот работу с базами, обработка данных и прочая фигня. 
то есть правильно ли я понял, что Сервисы в grails, как раз для этого?

Автор: Vasay 26.1.2012, 14:33
Maksys, 
Цитата(Maksys @  26.1.2012,  13:59 Найти цитируемый пост)
Ну вот работу с базами


Работа с базой, если не требуется чего-то изощренного, Грэилс берет на себя.  Ваша задача только правильно создать доменные классы (там же, обычно, прописываются правила валидации данных для записи в базу).

Валидация пользовательского ввода, обычно, ложиться на плечи коммандных объектов:
http://grails.org/doc/latest/guide/theWebLayer.html#commandObjects

Автор: Maksys 26.1.2012, 20:08
Vasay, да я в роде это разобрал. Но все же не ясно куда класть классы для обработки данных?
Если их класть в Service, то у них цикл жизни от запуска сервера и данными надо будет самому управлять. А обработка данных проделает свои махинации и все транзакция закончена. Или может бизнес логику запускать отдельным WebService`ом? в другой контейнер написанный на Scala? О прикольно придумал... но не знаю прикольно ли? 

Автор: Vasay 1.2.2012, 22:55
Цитата(Maksys @ 26.1.2012,  20:08)
Vasay, да я в роде это разобрал. Но все же не ясно куда класть классы для обработки данных?
Если их класть в Service, то у них цикл жизни от запуска сервера и данными надо будет самому управлять. А обработка данных проделает свои махинации и все транзакция закончена. Или может бизнес логику запускать отдельным WebService`ом? в другой контейнер написанный на Scala? О прикольно придумал... но не знаю прикольно ли?

Можно регистрировать классы спринг бинами.

Соответственно, в зависимости от целей давать им разный скоп - синглтон, сешен, реквест
http://grails.org/doc/latest/guide/spring.html

Scope сервисов, кстати, можно менять:
http://grails.org/doc/2.0.x/guide/services.html#scopedServices

Автор: Illdisposed 2.9.2012, 20:58
Vasay, скажите пожалуйста, а если у меня есть вспомогательный класс для работы с изображениями. По правилам его нужно класть в папку src/groovy/?

Автор: Vasay 2.9.2012, 21:35
Цитата(Illdisposed @  2.9.2012,  20:58 Найти цитируемый пост)
Vasay, скажите пожалуйста, а если у меня есть вспомогательный класс для работы с изображениями. По правилам его нужно класть в папку src/groovy/?


Можно туда. Можно сделать сервис.

Автор: Illdisposed 3.9.2012, 10:24
Vasay, Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)