Restlet针对每个url指定一个资源。使用spring注解,代码已经跑通,附件项目下载,欢迎留言讨论
注意:web.xml配置component,
<init-param>
<param-name>org.restlet.component</param-name>
<param-value>component</param-value>
</init-param>
param-value要和applicationContext.xml中bean的id保持一致
基本结构如图:
下面上代码:
CustomerDAO
public interface CustomerDAO {
public String getCustomerById(String id);
}
OrderDao
public interface OrderDao {
public abstract String getOrderId(String id);
}
CustomerDAOImpl
@Service
@Scope("prototype")
public class CustomerDAOImpl implements CustomerDAO {
public String getCustomerById(String id) {
return "The customer id is " +id;
}
}
OrderDaoImpl
@Service
@Scope("prototype")
public class OrderDaoImpl implements OrderDao {
@Override
public String getOrderId(String id) {
return "this order id is "+id;
}
}
CustomerResource
@Controller
@Scope("prototype")
public class CustomerResource extends ServerResource {
public CustomerResource() {
// TODO Auto-generated constructor stub
}
String customerId = "";
@Get
public Representation getRepresentation() {
customerId = (String) getRequest().getAttributes().get("custId");
String string = customerDAO.getCustomerById(customerId);
return new StringRepresentation(string);
}
@Autowired
private CustomerDAO customerDAO;
}
OrderResource
@Controller
public class OrderResource extends ServerResource{
String orderId = "";
@Get
public Representation getRepresentation() {
orderId = (String) getRequest().getAttributes().get("orderId");
return new StringRepresentation(orderDao.getOrderId(orderId));
}
@Autowired
private OrderDao orderDao;
}
applicationContext.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"
default-lazy-init="true">
<context:component-scan base-package="com.sioo" />
<bean id="component" class="org.restlet.ext.spring.SpringComponent">
<property name="defaultTarget" ref="restRoute" />
</bean>
<bean id="restRoute" class="org.restlet.ext.spring.SpringRouter">
<property name="attachments">
<map>
<entry key="/customer/{custId}">
<bean class="org.restlet.ext.spring.SpringFinder">
<lookup-method name="create" bean="customerResource" />
</bean>
</entry>
<entry key="/order/{orderId}">
<bean class="org.restlet.ext.spring.SpringFinder">
<lookup-method name="create" bean="orderResource" />
</bean>
</entry>
</map>
</property>
</bean>
</beans>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/applicationContext.xml</param-value>
</init-param>
</servlet>
<!--Spring ApplicationContext load -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- Spring,avoid leaking memory -->
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<!-- restlet servlet -->
<servlet>
<servlet-name>restlet</servlet-name>
<servlet-class>org.restlet.ext.spring.SpringServerServlet</servlet-class>
<init-param>
<param-name>org.restlet.component</param-name>
<param-value>component</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>restlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
配置好启动tomcat浏览器输入:
http://localhost:8080/test-restlet/order/1
页面显示:
this order id is 1
http://localhost:8080/test-restlet/customer/1
页面显示:
The customer id is 1
======持续更新中=====
分享到:
相关推荐
"RSH_setup" 这个文件名可能指的是Reslet、Spring和Hibernate的集成安装或配置文件,可能是项目搭建的引导文件,包含了必要的配置信息和依赖库,用于快速搭建和运行该项目。 **知识点详细说明:** 1. **RESTful...
Reslet是一个轻量级的Java框架,专门用于构建RESTful(Representational State Transfer)Web服务。REST是一种架构风格,强调简单、直接的交互,通过HTTP协议来操作资源。Reslet库提供了一组API,帮助开发者轻松创建...
技术选型 【后端】:Java 【框架】:ssm 【前端】:vue/jsp 【JDK版本】:JDK1.8 【服务器】:tomcat7+ 【数据库】:mysql 5.7+ 包含:项目源码、数据库脚本、项目功能介绍文档等,该项目源码可作为毕设使用。 项目都经过严格调试,确保可以运行! 具体项目介绍可查看博主文章
该源码是一款基于SpringBoot和Vue构建的青锋后台管理系统,集成了371个文件,涵盖148个Java源文件、85个Vue组件、58个JavaScript脚本、23个XML配置、12个FTL模板、7个XLS表格、5个属性文件、3个JSON配置、3个HTML页面和3个LESS样式表。系统以SpringBoot为核心框架,结合layui和Activiti工作流,具备代码生成器、自定义表单和拖拽可视化报表大屏等功能,为用户提供了一个功能齐全、易于扩展的脚手架平台。尽管开源代码可能存在不足,但欢迎广大开发者提出宝贵意见。
本设计由STC89C52单片机+LCD1602液晶显示电路+A/D转换芯片PCF8591电路+电压检测电路+电流检测电路ACS712-5A+继电器控制电路+电源电路设计而成。 功能描述: 1、通过太阳能电池板给锂电池充电,通过单片机检测太阳能给电池的充电电压和充电电流,并在1602液晶上显示出来! 2、通过继电器,有过压保护,当锂电池充电电压超过了4.5V或者充电电流超过1A,继电器断开,充电停止。 资料包含: 程序源码 电路图 任务书 答辩技巧 开题报告 参考论文 系统框图 程序流程图 使用到的芯片资料 器件清单 中期报告 等等资料
外鼻梁条超声焊接机_三维3D设计图纸.zip
本项目是一款基于PHP、JavaScript和CSS的爱宠狼人杀后台服务设计源码,总文件量为176个,其中包括124个PHP文件、12个Git忽略文件、5个JSON文件、4个JavaScript文件以及各类字体和图标文件。该系统专为爱宠狼人杀游戏的后台管理设计,旨在提供高效便捷的管理服务。
本项目为Java编写的Spring Security基础教程源码,包含85个文件,其中包括52个Java源文件、17个XML配置文件、13个YAML文件、1个Git忽略文件、1个Markdown文件和1个Word文档,旨在为开发者提供Spring Security框架的学习与实践基础。
Nacos持久化SQL脚本-nacos.sql
该项目为黔染出山记蜡染非遗融合现代设计的源码,总计包含145个文件,涵盖76个PNG图片文件、31个JPG图片文件、10个CSS样式文件、10个HTML文件、9个JavaScript文件、2个XML和JSON文件、1个IML文件、1个LICENSE文件以及1个字体文件。该项目旨在将黔染蜡染这一传统技艺与现代设计理念相融合,创新性地推动贵州蜡染手工艺的振兴,使这一文化遗产焕发新活力,融入现代生活,助力非遗传承与发展,同时促进贵州地区的经济增长。
该项目是一款基于Vue框架的连锁店点餐系统源码,包含282个文件,涵盖134个Vue组件、57个JavaScript文件、40个PNG图片、9个Markdown文档、9个JSON配置文件、8个SCSS样式表、7个映射文件、4个TypeScript文件以及少量其他辅助文件。该系统以uniDrink命名,模仿麦当劳、肯德基、喜茶和奈雪的茶等知名品牌的连锁店模式,适用于多连锁店场景的点餐服务。
本项目是一款基于Java技术的汽车配件信息管理系统源码,由137个文件组成,其中包括103个XML配置文件、24个Java源文件、2个Git忽略文件、2个属性文件、1个JAR包文件以及相关的其他文件类型。系统专注于汽车配件信息的管理与维护,适用于汽车维修与配件销售行业的信息化建设。
python直接能用的小游戏项目源码,含有代码注释,满分大作业资源,新手也可看懂,期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 python直接能用的小游戏项目源码,含有代码注释,满分大作业资源,新手也可看懂,期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 python直接能用的小游戏项目源码,含有代码注释,满分大作业资源,新手也可看懂,期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。python直接能用的小游戏项目源码,含有代码注释,满分大作业资源,新手也可看懂,期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为课程设计期末大作业使用,该系统功能完善。
基于IPv6的智能机器人园区异常情况监测系统,包括无线传感器网络、智能巡检机器人、监控数据服务器、主_ipv6intellmonitrsystem
本项目是一款基于JavaScript及多语言融合的勤工俭学平台设计源码,共计367个文件,涵盖231个Java源代码文件、27个XML配置文件、23个JavaScript文件、19个CSS文件、8个PNG图像文件以及少量其他类型文件。该平台旨在为勤工俭学活动提供高效便捷的解决方案,支持多种语言的交互,满足不同用户的需求。
KarelDB 是一款采用Java语言开发的全方位关系型数据库,其核心采用Apache Calcite作为SQL引擎,辅以Apache Omid提供事务及控制功能。项目源码包含155个文件,涵盖了106个Java源文件、9个属性文件等多种类型,展示了其在数据库领域的技术实力和开源组件的集成能力。
该项目是一款基于Thinkphp 5.1.12框架开发的EasyAdmin管理后台源码,包含6729个文件,涵盖JavaScript、PHP、CSS、HTML、微信小程序及Shell等多种编程语言。文件类型丰富,包括3909个JavaScript文件、1307个PHP文件、265个GIF图片文件等,适用于构建高效的后台管理系统。
215kWh~2150kWh工商业储能典型图集(2023年).pdf
该项目是一款基于Taro框架的微信菜谱小程序设计源码,采用TypeScript语言开发,文件总数达87个,涵盖22个SCSS样式文件、17个TSX组件文件、16个TS类型定义文件、6个PNG图片文件、5个JSON配置文件、2个HTML和CSS文件、以及2个字体文件。该源码仅供个人学习使用,若涉及侵权,请联系作者。