Очень легкий шаблон проекта веб-приложения на основе Groovy
Возможно, вы слышали о проекте Grails — это Groovy-версия Ruby on Rails, похожая на фреймворк, которая позволяет намного проще создавать веб-приложения с помощью динамических сценариев. Несмотря на всю мощь Grails, она не «легкая», если заглянуть под капот. Я не говорю, что Grails это плохо или что-то в этом роде. Grails на самом деле довольно круто писать с помощью веб-приложения. Однако я часто чувствовал, что хочу чего-то более легкого, но все же хочу создать прототип с помощью Groovy. Итак, здесь я покажу вам шаблон проекта maven-groovy-webapp, который я использую для начала разработки любого веб-приложения. Это очень просто, легко, и все же очень Groovy.
С чего начать
maven-webapp-groovy.zip
выше, и вы должны увидеть эти несколько файлов:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
bash > cd maven-webapp-groovy bash > find . bash > . /pom .xml bash > . /README .txt bash > . /src bash > . /src/main bash > . /src/main/java bash > . /src/main/java/deng bash > . /src/main/java/deng/GroovyContextListener .java bash > . /src/main/resources bash > . /src/main/resources/log4j .properties bash > . /src/main/webapp bash > . /src/main/webapp/console .gt bash > . /src/main/webapp/health .gt bash > . /src/main/webapp/home .gt bash > . /src/main/webapp/WEB-INF bash > . /src/main/webapp/WEB-INF/classes bash > . /src/main/webapp/WEB-INF/classes/ .keep bash > . /src/main/webapp/WEB-INF/groovy bash > . /src/main/webapp/WEB-INF/groovy/console .groovy bash > . /src/main/webapp/WEB-INF/groovy/health .groovy bash > . /src/main/webapp/WEB-INF/groovy/home .groovy bash > . /src/main/webapp/WEB-INF/groovy/init .groovy bash > . /src/main/webapp/WEB-INF/groovy/destroy .groovy bash > . /src/main/webapp/WEB-INF/web .xml |
Как вы можете видеть, это приложение на основе maven, и я настроил плагин tomcat, так что вы можете запустить его так:
1
2
|
bash > mvn tomcat7:run bash > open http: //localhost :8080 /maven-webapp-groovy/home .groovy |
И, конечно же, с maven, запущенная фаза пакета позволит вам развернуть его на любых реальных серверах приложений, когда будете готовы.
1
2
|
bash > mvn package bash > cp target /maven-webapp-groovy .war $APP_SERVER_HOME /autodeploy |
Что в ней
Вы должны проверить основную конфигурацию в файле web.xml
, и вы увидите, что есть пара встроенных сервлетов Groovy и пользовательский прослушиватель.
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
<? xml version = "1.0" ?> xsi:schemaLocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version = "2.5" > < description >Groovy Web Application</ description > < welcome-file-list > < welcome-file >home.groovy</ welcome-file > </ welcome-file-list > < servlet > < servlet-name >GroovyServlet</ servlet-name > < servlet-class >groovy.servlet.GroovyServlet</ servlet-class > </ servlet > < servlet-mapping > < servlet-name >GroovyServlet</ servlet-name > < url-pattern >*.groovy</ url-pattern > </ servlet-mapping > < servlet > < servlet-name >TemplateServlet</ servlet-name > < servlet-class >groovy.servlet.TemplateServlet</ servlet-class > </ servlet > < servlet-mapping > < servlet-name >TemplateServlet</ servlet-name > < url-pattern >*.gt</ url-pattern > </ servlet-mapping > < listener > < listener-class >deng.GroovyContextListener</ listener-class > </ listener > < context-param > < param-name >initScripts</ param-name > < param-value >/WEB-INF/groovy/init.groovy</ param-value > </ context-param > < context-param > < param-name >destroyScripts</ param-name > < param-value >/WEB-INF/groovy/destroy.groovy</ param-value > </ context-param > </ web-app > |
Я решил использовать GroovyServlet
в качестве контроллера (он поставляется с Groovy!), И это позволяет вам использовать любые скрипты в каталоге /WEB-INF/groovy
. Вот и все, никаких дальнейших настроек. Это единственное требование, необходимое для запуска веб-приложения Groovy! См. Пример console.groovy
и как он работает. Это отличная версия этой консоли JVM
Теперь вы можете использовать Groovy для обработки любой логики и даже генерировать вывод HTML, если хотите, но я считаю, что использовать TemplateServlet
еще проще. Это позволяет использовать файлы шаблонов Groovy в качестве представления. Это очень похоже на JSP, но вместо этого он использует Groovy! И мы знаем, что синтаксис Groovy гораздо короче! Смотрите console.gt
как exmaple и как это работает.
GroovyContextListener
— это то, что я написал, и это необязательно. Это позволяет запускать любые сценарии во время запуска или завершения работы веб-приложения. Я создал пустой init.groovy
и destroy.groovy
заполнитель. Итак, теперь у вас есть все ловушки, необходимые для создания прототипа практически любого веб-приложения.
Простота побеждает
Эта настройка — простой Java-сервлет с загруженным Groovy. Я часто думаю, что чем проще, тем меньше ошибок и быстрее код. Никаких тяжелых фреймворков, никакой дополнительной кривой обучения (кроме базовых навыков работы с Servlet API и Groovy / Java), и все готово.
Получите удовольствие с этим шаблоном Groovy веб-приложения! И дайте мне знать, если у вас есть несколько классных прототипов, чтобы покрасоваться после игры с этим.
Справка: очень легкий шаблон проекта веб-приложения на основе Groovy от нашего партнера по JCG Земьяна Дена в блоге A Programmer’s Journal .