轻量级Java web框架特定需求
当我第一次遇到Ruby的Sinatra框架或PHP的Zend框架时,我想知道Java中是否有足够的东西,这里的东西似乎太臃肿了。尽管有无数的框架,但到目前为止,我还没有发现一个适合我想要实现的体系结构
我想设计一个web应用程序,该应用程序将大量使用Javascript,大多数应用程序逻辑都在客户端实现,Java后端将或多或少地充当数据存储或执行复杂的计算
我在这里查看了相关问题,但没有找到完美的答案,每个建议的解决方案都有一个不符合要求的怪癖
这就是我想要的,一个具有以下特性的开源框架:
- 约定优先于配置
- 除了web,没有XML配置。xml
- 纯Java(没有Scala,没有Groovy,…)李>
- 自然的REST风格的URL,比如/news/2011/july(no.do,no.jsp,…)李>
- 注意休息
- 它不应该强迫我在应用服务器上部署(例如,EJB应该是可选的)
- 会话支持很好,但不是强制性的
- 在Rails中生成代码会很棒,但不是强制性的
- 最小依赖性,总体规模较小
- MVC很好,但是
- 我希望能够选择M部件,自己选择持久性库(无捆绑)李>
- 没有为视图自动生成的代码,既没有HTML、Javascript,也没有CSS
- 一个集成的模板语言会很好,但它应该是最低限度的(简单的控制流,对模板变量的访问)
- 布局支持(即,您可以为类似视图指定通用模板)
- 为视图自由选择Javascript框架
基本上,这将意味着一个MVC框架,为我做路由,并为视图提供模板支持,但其余的是完全模块化的,没有魔力。是否有任何最低限度的框架可以提供这一点(或者至少模块化程度足以以这种方式配置)
# 1 楼答案
Spring Roo:我发现开始很容易。它可以生成UI代码,但使用它取决于您
# 2 楼答案
那Play Framework呢
Play只有很少的配置文件。它的大部分结构都是按照惯例。 例如,基本结构如下:
Play没有XML配置,包括没有web。xml。它有一个路由文件。请参见下面的示例,它用于路由
它是纯Java,但您可以通过插件使用Scala或Groovy
从网站:
Play is a real "Share nothing" system. Ready for REST, it is easily scaled by running multiple instances of the same application on several servers.
事实上,以一种类似Rest的方式进行布线非常容易:
一旦你习惯了打球,就不难猜到哪一个会去哪里
事实上,你是通过保存文件来部署的。EJB是完全可选的,
.war
、.ear
和其他形式的部署也是可选的我认为它不会产生太多代码,但我并不是100%赞同。它会自动创建所有必需的文件夹,并实例化一个基本的示例页面。我不知道Rails是否还能生成其他东西
见MVC in Play
.html
、.css
、.js
和其他文件中使用模板语言来创建动态页面李>我有基于Groovy模板语言的内置模板语言
其他优点:
缺点:
# 3 楼答案
过去,我在几个项目中使用过Stripes框架,听起来它符合您的所有/大部分标准,尤其是配置方面的约定。没有XML配置——只有一个配置。具有常规行为配置的属性文件(它是类路径的一次性添加)。对网络进行一次性编辑。配置“Stripes Dispatcher”需要xml,这是一个将请求路由到相应操作bean的过滤器。ActionBeans是自动发现的,所以你甚至不需要更新你的网站。添加更多操作bean时使用xml。您的URL都是使用action Bean上的注释、rest支持的动态ActionBean绑定、服务器端验证以及通过简单类型的内置注释进行的转换来设置的,并且能够为复杂类型创建自己的验证处理程序和转换器。使用JSP和自定义JS/CSS库。文档和支持论坛很棒。如果你遵循他们的指导,学习起来很快