前面两篇文章,我们介绍了基于JAX-RS的REST服务以及Application的Rest服务。这里将介绍restlet如何整合spring框架进行开发。Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的,广泛的应用于应用项目中。本篇文章将在上篇的基础上面做介绍,将上篇文章的介绍的rest,用spring整合来实现。

一、基于spring配置的Rest简单服务

1、新建RestSpringApplication Web工程。

将restlet和spring的jar包复制进来。红色部分为新加入进来的jar包。

将上篇中的RestApplication工程项目中的src的源文件复制过来。

2、将web.xml加入下面代码

<servlet>
<servlet-name>restlet</servlet-name>
<servlet-class>
org.restlet.ext.spring.RestletFrameworkServlet
</servlet-class>
<init-param>
<param-name>org.restlet.component</param-name>
<param-value>restletComponent</param-value>
</init-param>
</servlet>

<servlet-mapping>
<servlet-name>restlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>

上面代码指定了restlet使用spring的RestletFrameworkServlet。

3、建立restlet-servlet.xml文件,只需要配置org.restlet.ext.spring.SpringRouter,及对应的路径和资源文件。

<bean name="root">

<property name="attachments">
<map>
<entry key="/student/{studentId}">
<bean>
<lookup-method name="create" bean="StudentResource" />
</bean>
</entry>
<entry key="/student">
<bean>
<lookup-method name="create" bean="StudentsResource" />
</bean>
</entry>

</map>
</property>
</bean>

<bean id="StudentResource" class="org.lifeba.ws.resource.StudentResource" scope="prototype"/>
<bean id="StudentsResource" class="org.lifeba.ws.resource.StudentsResource" scope="prototype"/>

上面的代码配置了
/student/{studentId}对应StudentResource,以及student对应StudentsResource资源类。通过
SpringRouter可以非常方便的通过attachments配置资源路径。如果你有更多的路径,你可以建立多个entry即可。

4、好了,你现在可以重启tomcat了,输入 http://localhost:8085/RestSpringApplication/student/1,访问正常。

二、测试添加、删除、更新方法。

1、student_post方法,添加一个Student,成功后返回新建studentId为2的对象。

public void student_post(){
try {
Form queryForm = new Form();
queryForm.add("name","steven_spring");
queryForm.add("clsId","201002");
queryForm.add("sex","2");
queryForm.add("age","12");
ClientResource client = new ClientResource("http://localhost:8085/RestSpringApplication/student");
Representation representation =client.post(queryForm.getWebRepresentation());
System.out.println(representation.getText());
} catch (Exception e) {

e.printStackTrace();
}
}

访问http://localhost:8085/RestSpringApplication/student/2

访问http://localhost:8085/RestSpringApplication/student ,可以看到有2个Student对象。

2、student_delete方法,删除Id为1的Student,成功执行后返回1。

public void student_delete(){
try {
ClientResource client = new ClientResource("http://localhost:8085/RestSpringApplication/student/1");
Representation representation =client.delete();
System.out.println(representation.getText());
} catch (Exception e) {
e.printStackTrace();
}
}

再次访问http://localhost:8085/RestSpringApplication/student,可以看到只有一个Id为2的Student对象。

3、student_put方法,更新Id为2的Student。

public void student_put(){
try {
Form queryForm = new Form();
queryForm.add("name","steven_spring_modify");
queryForm.add("clsId","201012");
queryForm.add("sex","12");
queryForm.add("age","24");

ClientResource client = new ClientResource("http://localhost:8085/RestSpringApplication/student/2");
Representation representation =client.put(queryForm);
System.out.println(representation.getText());
} catch (Exception e) {
e.printStackTrace();
}
}

访问http://localhost:8085/RestSpringApplication/student/2

通过上面的代码已经完全实现了Spring中的restlet的配置。上面只对Student对象做了介绍,你也可以实现对Course在spring中配置,基本方法一样。这里不再阐述。

三、资源工程下载

RestSpringApplication工程

RESTLET开发实例(三)基于spring的REST服务的更多相关文章

  1. RESTLET开发实例(一)基于JAX-RS的REST服务

    RESTLET介绍 Restlet项目为“建立REST概念与Java类之间的映射”提供了一个轻量级而全面的框架.它可用于实现任何种类的REST式系统,而不仅仅是REST式Web服务. Restlet项 ...

  2. [转贴]JAVA :RESTLET开发实例(一)基于JAX-RS的REST服务

    RESTLET介绍 Restlet项目为“建立REST概念与Java类之间的映射”提供了一个轻量级而全面的框架.它可用于实现任何种类的REST式系统,而不仅仅是REST式Web服务. Restlet项 ...

  3. [转贴]JAVA:RESTLET开发实例(二)使用Component、Application的REST服务

    上一篇文章,我们介绍了基于JAX-RS的REST服务,本篇文章我们介绍不基于JAX-RS的模式.JAX-RS其实就是一个简单的 Application服务.和我们接下来介绍的Application基本 ...

  4. [转贴]JAVA:RESTLET开发实例(三)基于spring的REST服务

    前面两篇文章,我们介绍了基于JAX-RS的REST服务以及Application的Rest服务.这里将介绍restlet如何整合spring框架进行开发.Spring 是一个开源框架,是为了解决企业应 ...

  5. 用ZooKeeper做为注册中心搭建基于Spring Cloud实现服务注册与发现

    前提: 先安装好ZooKeeper的环境,搭建参考:http://www.cnblogs.com/EasonJim/p/7482961.html 说明: 可以再简单的理解为有两方协作,一个是服务提供这 ...

  6. Spring Boot 使用IntelliJ IDEA创建一个web开发实例(三)

    属性配置 1.配置application.properties文件 配置web访问端口和context path server.port = 8081 server.servlet.context-p ...

  7. RESTLET开发实例

    1 前提 由于近期工作的需要,要把RESTLET应用到项目中,于是在网上参考了一些资料的基础上,实践了一个关于RESTLET接口的小例子. Restlet的思想是:HTTP客户端与HTTP服务器之间的 ...

  8. RRiBbit,一个事件总线.基于spring配置不同服务通信!

    1.何为RRiBbit? *一种开源事件总线技术,能够让模块(组件)之间双向通讯,也被称为请求相应总线(request-response-bus),使用简单,相对其他框架来说,RRiBbit只需要加个 ...

  9. Spring cloud微服务安全实战_汇总

    Spring cloud微服务安全实战 https://coding.imooc.com/class/chapter/379.html#Anchor Spring Cloud微服务安全实战-1-1 课 ...

随机推荐

  1. 避免ajax请求过多,导致内存溢出,请求之后回收资源

    php试题网 http://phpshiti.com/ http://www.jb51.net/article/30458.htm success: function (data, textStatu ...

  2. Linux 系统结构详解

    Linux 系统结构详解 Linux系统一般有4个主要部分: 内核.shell.文件系统和应用程序.内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使用系统 ...

  3. Linux中的时间和时间管理

    Coordinated Universal Time(UTC):协调世界时,又称为世界标准时间,也就是大家所熟知的格林威治标准时间(Greenwich Mean Time,GMT).比如,中国内地的时 ...

  4. 网站开发常用jQuery插件总结(一)提示插件alertify

    1.alertify插件功能 主要实现提示功能,用于代替js中的alert,confirm,prompt,显示友好的提示框 2.alertify官方地址 http://fabien-d.github. ...

  5. C# 实现对窗体(Form)换肤

    http://www.csharpwin.com/csharpresource/2992.shtml 一直想写一个比较完整的.容易扩展的窗体换肤的方案,由于时间问题,都没去实现这个想法.现在有朋友提出 ...

  6. TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error

    新建的数据库,在配置完listener的时候报这个错. 参考文章:https://community.oracle.com/message/4098938 http://blog.csdn.net/l ...

  7. hdu 4300 Clairewd’s message KMP应用

    Clairewd’s message 题意:先一个转换表S,表示第i个拉丁字母转换为s[i],即a -> s[1];(a为明文,s[i]为密文).之后给你一串长度为n<= 100000的前 ...

  8. Substring的简单使用

    string myString = "测试一下函数Substring()是怎么用的"; //Substring()在C#中有两个重载函数 //分别如下示例 //如果参数为一个长整数 ...

  9. Java中的编码

    package coreJava; import javax.swing.plaf.synth.SynthSpinnerUI; public class EncodeDemo { public sta ...

  10. [转载]C# 中对html 标签过滤

    private string FilterHTML(string html) { System.Text.RegularExpressions.Regex regex1 = new System.Te ...