`
狂想的旅程
  • 浏览: 15913 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

<Reslet1>:Reslet+Spring,配置简单web访问

阅读更多
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

======持续更新中=====
1
1
分享到:
评论

相关推荐

    reslet2.0+spring3.0+hibernate3.3框架集成

    "RSH_setup" 这个文件名可能指的是Reslet、Spring和Hibernate的集成安装或配置文件,可能是项目搭建的引导文件,包含了必要的配置信息和依赖库,用于快速搭建和运行该项目。 **知识点详细说明:** 1. **RESTful...

    reslet所需jar包二

    Reslet是一个轻量级的Java框架,专门用于构建RESTful(Representational State Transfer)Web服务。REST是一种架构风格,强调简单、直接的交互,通过HTTP协议来操作资源。Reslet库提供了一组API,帮助开发者轻松创建...

    ssm9293农家乐管理系统.zip

    技术选型 【后端】:Java 【框架】:ssm 【前端】:vue/jsp 【JDK版本】:JDK1.8 【服务器】:tomcat7+ 【数据库】:mysql 5.7+ 包含:项目源码、数据库脚本、项目功能介绍文档等,该项目源码可作为毕设使用。 项目都经过严格调试,确保可以运行! 具体项目介绍可查看博主文章

    基于SpringBoot和Vue的青锋后台管理系统设计源码

    该源码是一款基于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工作流,具备代码生成器、自定义表单和拖拽可视化报表大屏等功能,为用户提供了一个功能齐全、易于扩展的脚手架平台。尽管开源代码可能存在不足,但欢迎广大开发者提出宝贵意见。

    基于51单片机太阳能锂电池充电电压电流检测液晶显示设计(毕业设计)

    本设计由STC89C52单片机+LCD1602液晶显示电路+A/D转换芯片PCF8591电路+电压检测电路+电流检测电路ACS712-5A+继电器控制电路+电源电路设计而成。 功能描述: 1、通过太阳能电池板给锂电池充电,通过单片机检测太阳能给电池的充电电压和充电电流,并在1602液晶上显示出来! 2、通过继电器,有过压保护,当锂电池充电电压超过了4.5V或者充电电流超过1A,继电器断开,充电停止。 资料包含: 程序源码 电路图 任务书 答辩技巧 开题报告 参考论文 系统框图 程序流程图 使用到的芯片资料 器件清单 中期报告 等等资料

    外鼻梁条超声焊接机_三维3D设计图纸.zip

    外鼻梁条超声焊接机_三维3D设计图纸.zip

    基于PHP+JavaScript+CSS的爱宠狼人杀后台服务设计源码

    本项目是一款基于PHP、JavaScript和CSS的爱宠狼人杀后台服务设计源码,总文件量为176个,其中包括124个PHP文件、12个Git忽略文件、5个JSON文件、4个JavaScript文件以及各类字体和图标文件。该系统专为爱宠狼人杀游戏的后台管理设计,旨在提供高效便捷的管理服务。

    基于Java的Spring Security基础教程设计源码

    本项目为Java编写的Spring Security基础教程源码,包含85个文件,其中包括52个Java源文件、17个XML配置文件、13个YAML文件、1个Git忽略文件、1个Markdown文件和1个Word文档,旨在为开发者提供Spring Security框架的学习与实践基础。

    Nacos持久化SQL脚本-nacos.sql

    Nacos持久化SQL脚本-nacos.sql

    基于黔染出山记的蜡染非遗融合现代设计源码

    该项目为黔染出山记蜡染非遗融合现代设计的源码,总计包含145个文件,涵盖76个PNG图片文件、31个JPG图片文件、10个CSS样式文件、10个HTML文件、9个JavaScript文件、2个XML和JSON文件、1个IML文件、1个LICENSE文件以及1个字体文件。该项目旨在将黔染蜡染这一传统技艺与现代设计理念相融合,创新性地推动贵州蜡染手工艺的振兴,使这一文化遗产焕发新活力,融入现代生活,助力非遗传承与发展,同时促进贵州地区的经济增长。

    基于Vue框架的连锁店点餐系统设计源码

    该项目是一款基于Vue框架的连锁店点餐系统源码,包含282个文件,涵盖134个Vue组件、57个JavaScript文件、40个PNG图片、9个Markdown文档、9个JSON配置文件、8个SCSS样式表、7个映射文件、4个TypeScript文件以及少量其他辅助文件。该系统以uniDrink命名,模仿麦当劳、肯德基、喜茶和奈雪的茶等知名品牌的连锁店模式,适用于多连锁店场景的点餐服务。

    基于Java技术的汽车配件信息管理系统设计源码

    本项目是一款基于Java技术的汽车配件信息管理系统源码,由137个文件组成,其中包括103个XML配置文件、24个Java源文件、2个Git忽略文件、2个属性文件、1个JAR包文件以及相关的其他文件类型。系统专注于汽车配件信息的管理与维护,适用于汽车维修与配件销售行业的信息化建设。

    python直接能用的小游戏项目源码

    python直接能用的小游戏项目源码,含有代码注释,满分大作业资源,新手也可看懂,期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 python直接能用的小游戏项目源码,含有代码注释,满分大作业资源,新手也可看懂,期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 python直接能用的小游戏项目源码,含有代码注释,满分大作业资源,新手也可看懂,期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为课程设计期末大作业使用,该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。python直接能用的小游戏项目源码,含有代码注释,满分大作业资源,新手也可看懂,期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。该项目可以作为课程设计期末大作业使用,该系统功能完善。

    基于IPv6的智能机器人园区异常情况监测系统,包括无线传感器网络、智能巡

    基于IPv6的智能机器人园区异常情况监测系统,包括无线传感器网络、智能巡检机器人、监控数据服务器、主_ipv6intellmonitrsystem

    基于JavaScript及多语言融合的勤工俭学平台设计源码

    本项目是一款基于JavaScript及多语言融合的勤工俭学平台设计源码,共计367个文件,涵盖231个Java源代码文件、27个XML配置文件、23个JavaScript文件、19个CSS文件、8个PNG图像文件以及少量其他类型文件。该平台旨在为勤工俭学活动提供高效便捷的解决方案,支持多种语言的交互,满足不同用户的需求。

    基于Java和Apache开源组件的KarelDB设计源码

    KarelDB 是一款采用Java语言开发的全方位关系型数据库,其核心采用Apache Calcite作为SQL引擎,辅以Apache Omid提供事务及控制功能。项目源码包含155个文件,涵盖了106个Java源文件、9个属性文件等多种类型,展示了其在数据库领域的技术实力和开源组件的集成能力。

    基于Thinkphp 5.1.12的EasyAdmin For Thinkphp管理后台设计源码

    该项目是一款基于Thinkphp 5.1.12框架开发的EasyAdmin管理后台源码,包含6729个文件,涵盖JavaScript、PHP、CSS、HTML、微信小程序及Shell等多种编程语言。文件类型丰富,包括3909个JavaScript文件、1307个PHP文件、265个GIF图片文件等,适用于构建高效的后台管理系统。

    215kWh~2150kWh工商业储能典型图集(2023年).pdf

    215kWh~2150kWh工商业储能典型图集(2023年).pdf

    基于Taro框架的微信菜谱小程序设计源码

    该项目是一款基于Taro框架的微信菜谱小程序设计源码,采用TypeScript语言开发,文件总数达87个,涵盖22个SCSS样式文件、17个TSX组件文件、16个TS类型定义文件、6个PNG图片文件、5个JSON配置文件、2个HTML和CSS文件、以及2个字体文件。该源码仅供个人学习使用,若涉及侵权,请联系作者。

Global site tag (gtag.js) - Google Analytics