Протягом півтора місяців у мене бродили думки щодо можливої архітектурі системи. Нарешті я вирішив подивитися що ж на поточний момент існує з Java фреймворків. Вивчаючи огляди набрів на опис Groove Grails. Перше ж вивчення матеріалів по Grails 2 мене дуже зацікавило. Я вирішив вивчити його детальніше.
Працювати без мети для мене завжди нудно і непродуктивно 🙂 Тому в якості піддослідного кролика я взяв уже розроблений раніше проект для HR. Першим завданням було створення вже існуючої моделі з БД. Для розробки я використовував IDE NetBeans 7.1 з встановленими плагінами для Groove Grails 2.
Створення об'єктів - GRAG
Для створення domains в Grails 2 я використовував програму the grails application generator
Програма реалізована як desktop додаток. Програмі необхідно вказати рядок з'єднання з БД. Далі, після імпорту з БД таблиць, я змінив властивість dislay, а також включив властивість bidirection для автоматичного відображення зв'язків між об'єктами.
Далі мені тільки іноді доводилося коригувати опис створених об'єктів - в основному це доробка автоматично створеного методу toString для коректного відображення об'єктів в списках (за замовчуванням відображається властивість ID).
Grails 2 - допілівать під себе
Далі необхідно створити контролери для потрібних об'єктів. Зробити це простіше простого.
В папці контролерів створюємо новий файл з найменуванням .omainName% Controller.groovy. У файлі пишемо дуже складний код 🙂
class .omainName% Controller
def scaffold = .omainName%
>
Якщо хочеться змінити існуючий шаблон (а мені цього захотілося), то можна створити набір шаблонів в проекті за допомогою команди install-templates. Тепер ви повністю можете контролювати процес генерації контролерів і уявлень.
Також має бути доробка стандартного шаблону index.gsp.
Для редагування уявлення властивостей в режимі редагування необхідно міняти шаблон renderEditor.template.
Русифікація в Grails 2
Після першого знайомство з інтерфейсом виникає питання русифікації. Частина повідомлень русифіковані, але на жаль не всі. В першу чергу це стосується операцій і найменувань об'єктів і їх властивостей. Для їх зміни необхідно доопрацювати файл messages_ru.properties.
Деякі корисні плагіни Grails 2
* У найменуванні ресурсів i18N помилка. Замість fp.tag.filterPane.sort.descending використовувати fp.tag.filterpane.sort.descending
Що зараз використовую в проекті
Список плагінів в поточному проекті буде ще розширено. На поточний момент це: