Статьи

Очень легкий шаблон проекта веб-приложения на основе Groovy

Очень легкий шаблон проекта веб-приложения на основе 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"?>
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        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 .