Очень легкий шаблон проекта веб-приложения на основе 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-groovybash> find .bash> ./pom.xmlbash> ./README.txtbash> ./srcbash> ./src/mainbash> ./src/main/javabash> ./src/main/java/dengbash> ./src/main/java/deng/GroovyContextListener.javabash> ./src/main/resourcesbash> ./src/main/resources/log4j.propertiesbash> ./src/main/webappbash> ./src/main/webapp/console.gtbash> ./src/main/webapp/health.gtbash> ./src/main/webapp/home.gtbash> ./src/main/webapp/WEB-INFbash> ./src/main/webapp/WEB-INF/classesbash> ./src/main/webapp/WEB-INF/classes/.keepbash> ./src/main/webapp/WEB-INF/groovybash> ./src/main/webapp/WEB-INF/groovy/console.groovybash> ./src/main/webapp/WEB-INF/groovy/health.groovybash> ./src/main/webapp/WEB-INF/groovy/home.groovybash> ./src/main/webapp/WEB-INF/groovy/init.groovybash> ./src/main/webapp/WEB-INF/groovy/destroy.groovybash> ./src/main/webapp/WEB-INF/web.xml |
Как вы можете видеть, это приложение на основе maven, и я настроил плагин tomcat, так что вы можете запустить его так:
|
1
2
|
bash> mvn tomcat7:runbash> open http://localhost:8080/maven-webapp-groovy/home.groovy |
И, конечно же, с maven, запущенная фаза пакета позволит вам развернуть его на любых реальных серверах приложений, когда будете готовы.
|
1
2
|
bash> mvn packagebash> 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 .