一个非常轻巧的基于Groovy的Web应用程序项目模板

一个非常轻巧的基于Groovy的Web应用程序项目模板

您可能听说过该项目Grails是Ruby on Rails之类的Groovy版本的框架,该框架使您可以通过动态脚本轻松地创建Web应用程序。 尽管Grails提供了所有功能,但如果您仔细观察引擎盖,它并不是“轻巧”的。 我并不是说Grails不好或什么。 使用Grails编写Web应用程序实际上非常酷。 但是我发现自己经常想要更轻的东西,但仍然想要使用Groovy进行原型设计。 因此,在这里,我将向您展示一个maven-groovy-webapp项目模板,该模板用于开始任何Web应用程序开发。 它非常简单,轻巧,但是却非常时髦。

如何开始

解压缩上面的maven-webapp-groovy.zip文件,您应该看到以下几个文件:

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插件,因此您可以这样运行它:

bash> mvn tomcat7:run
bash> open http://localhost:8080/maven-webapp-groovy/home.groovy

当然,使用maven,运行程序包阶段可以让您在准备就绪时将其部署到任何实际的应用程序服务器中。

bash> mvn package
bash> cp target/maven-webapp-groovy.war $APP_SERVER_HOME/autodeploy

这里面是什么

您应该在web.xml文件中检出主要配置,然后您会看到有一些内置的Groovy servlet和一个自定义侦听器。

<?xml version="1.0"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        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 Webapp的唯一要求! 请参阅console.groovy作为示例及其工作方式。 这是此JVM控制台的常规版本

现在,您可以使用Groovy处理任何逻辑,甚至可以根据需要生成HTML输出,但是我发现使用TemplateServlet更容易。 这样就可以将Groovy模板文件用作视图。 它非常类似于JSP,但是它使用Groovy代替! 而且我们知道Groovy语法要短得多! 请参阅console.gt作为示例及其工作方式。

GroovyContextListener是我写的东西,它是可选的。 这使您可以在webapp启动或关闭状态下运行任何脚本。 我创建了一个空的init.groovydestroy.groovy占位符。 因此,现在您拥有了几乎所需的任何Web应用程序原型所需的所有功能。

简单胜出

此设置只是加载了Groovy的普通Java Servlet。 我经常认为,越简单,错误越少,代码编写速度就越快。 没有沉重的框架,没有额外的学习曲线(除了基本的Servlet API和Groovy / Java的课程知识),然后就可以使用了。
使用此Groovy Webapp模板玩得开心! 并且让我知道您在玩过这个游戏后是否有炫酷的原型可以炫耀。

参考:来自A程序员杂志博客的JCG合作伙伴 Zemian Deng提供的基于Groovy的非常轻量的Web应用程序项目模板

翻译自: https://www.javacodegeeks.com/2012/12/a-very-light-groovy-based-web-application-project-template.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值