我们希望在Web应用程序中托管Java域模型(使用DDD编写)。理想情况下,我想支持RESTful资源和请求,只需一个站点来支持用户和REST API。
理想情况下,相同的URL可用于最终用户和给定功能的RESTful API(使用HTTP内容类型/协商来指定差异)。
我在Ruby on Rails和Asp.mvc中做过类似的应用程序,但没有经验在Java中做过这样的事情。任何人都有从哪里开始的经验或建议? (谷歌搜索表明Spring v3可能是一个答案,任何人对Spring 3都有任何想法吗?)
答案 0 :(得分:4)
Restlets Framework http://www.restlet.org/
我已经广泛使用了这个框架,易于使用,非常灵活,并且支持大量功能以及您希望从文件上传到gzipping响应的更多功能。
这个模块也有Spring支持,非常简单。例如:
<强>的web.xml 强>
<servlet>
<servlet-name>webapi</servlet-name>
<servlet-class>
com.noelios.restlet.ext.spring.RestletFrameworkServlet
</servlet-class>
</servlet>
春季背景
<bean id="root" class="org.restlet.ext.spring.SpringRouter">
<property name="attachments">
<map>
<entry key="/{variable}/your/restful/call/{variable2}">
<bean class="org.restlet.ext.spring.SpringFinder">
<lookup-method name="createResource" bean="yourBean" />
</bean>
</entry>
</map>
</bean>
框架也有一个很棒的documentation,first steps for newbies和一个很棒的WIKI。
这个框架非常成熟并且得到了积极的改进,检查了即将到来的features。
使用jmock对Restlet资源端点进行单元测试也很容易。
希望有所帮助。
答案 1 :(得分:4)
Spring 3尚未准备就绪,但目前的里程碑版本(M3)足够稳定,可用于真实版本。我们已经在生产应用程序中使用其REST支持。它非常好,并且与Spring MVC很好地集成。它不符合JAX-RS,但我不认为这是一个问题。
答案 2 :(得分:3)
对于网络服务,Jersey很简单。 Spring 3听起来很不错,但它还没有出来,而且Jersey功能齐全,支持开箱即用的SOAP和JSON。除了将servlet添加到web.xml文件之外,它都是基于注释的,这使得它甚至比Spring插件更容易配置,但为了避免被大吼大叫,我会说也许不是。
对于(MVC)网页(用户UI),我使用Spring MVC或Struts。
答案 3 :(得分:2)
春天很棒。我已将它用于某些项目,最近还与Liferay门户服务器一起用于开发portlet。
为什么春天好?
总而言之,我只是积极的经历,因为Spring真的推广了最佳实践。
答案 4 :(得分:1)
我是单轨MVC用户(castleproject.org),所以我想我们来自类似的背景。 几个月前,我们开始在不同的项目中处理java堆栈,特别是Spring。
功能方面它拥有我在单轨中所用的90%,但它更灵活,其缺点是有很多配置需要习惯。 文档有时太多,所以你不知道在哪里找到东西。 希望它有所帮助