`
wwwxxx286
  • 浏览: 50305 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

基于Rribbit和Spring MVC搭建REST风格架构

    博客分类:
  • Java
阅读更多

基于Rribbit事件驱动和Spring MVC搭建Restful风格的架构步骤 :

 

配置Pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.wx</groupId>
	<artifactId>sipbus</artifactId>
	<packaging>war</packaging>
	<version>1.0-SNAPSHOT</version>
	<name>sipbus Maven Webapp</name>
	<url>http://maven.apache.org</url>

	<build>
		<plugins>
			<plugin>
				<groupId>org.mortbay.jetty</groupId>
				<artifactId>maven-jetty-plugin</artifactId>
				<version>6.1.19</version>
				<configuration>
					<scanIntervalSeconds>10</scanIntervalSeconds>
					<contextPath>sipbus</contextPath>
					<connectors>
						<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
							<port>7000</port>
							<maxIdleTime>60000</maxIdleTime>
						</connector>
					</connectors>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-war-plugin</artifactId>
				<configuration>
					<webappDirectory>${project.build.directory}/bin/sipbus.war
					</webappDirectory>
					<useCache>false</useCache>
					<dependentWarExcludes>WEB-INF/lib/*-1.0-SNAPSHOT*
					</dependentWarExcludes>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy-dependencies</id>
						<phase>package</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<outputDirectory>${basedir}/src/main/webapp/WEB-INF/lib
							</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
	
	<dependencies>
	
		<dependency>
			<groupId>org.rribbit</groupId>
			<artifactId>rribbit</artifactId>
			<version>2.7.0</version>
			<type>jar</type>
		</dependency>
		
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>3.1.2.RELEASE</version>
			<type>jar</type>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>3.1.2.RELEASE</version>
			<type>jar</type>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>3.1.2.RELEASE</version>
			<type>jar</type>
			<scope>compile</scope>
		</dependency>
	</dependencies>
</project>

 

Rribbit配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:jee="http://www.springframework.org/schema/jee" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
	xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-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/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
		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/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

	<bean id="creator"
		class="org.rribbit.creation.SpringBeanClassBasedListenerObjectCreator">
		<property name="packageNames">
			<list>
				<value>com.geone.its</value>
			</list>
		</property>
		<property name="scanSubpackages" value="true" />
	</bean>

	<bean id="rrb" class="org.rribbit.util.RRiBbitUtil"
		factory-method="createRequestResponseBusForLocalUse">
		<constructor-arg ref="creator" />
		<constructor-arg value="true" />
	</bean>
</beans>

 

Spring MVC配置:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-3.0.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
           http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

<import resource="classpath*:rribbit-context.xml" />
	<context:annotation-config />
	<context:component-scan base-package="com.wx" />

	<bean
		class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />

</beans>

 

Rribbit测试类:

@Service("testRribbit")
public class TestRribbit {

	@Listener(hint = "testEvent")
	public void testEvent() {
		System.out.println("******rribbit********");
	}
}

 

Rest测试类:

@Controller  
@RequestMapping("/test")
public class TestRest {
	
	@Autowired
	private RequestResponseBus rrb;
	
	@RequestMapping("/hello.do")  
    public void printWelcome(ModelMap model) {  
        model.addAttribute("message", "testing"); 
        System.out.println("*************testing**********");
        rrb.send("testEvent");
    }  
}

 

执行mvn package

mvn jetty:run

 

visit url:http://localhost:7000/testRest/test/hello

 

信息: FrameworkServlet 'springMvc': initialization completed in 462 ms

*************testing**********

******rribbit********

0
0
分享到:
评论
1 楼 LinApex 2014-09-22  
Rribbit啥东西

相关推荐

    使用Spring MVC 搭建Rest服务.doc

    总结来说,使用Spring MVC搭建REST服务涉及以下几个步骤: 1. 设计RESTful API,定义URI和HTTP方法。 2. 创建数据模型和相应的Java Bean。 3. 编写控制器类,使用`@Controller`、`@RequestMapping`等注解处理HTTP...

    基于注解Spring MVC环境搭建

    总的来说,基于注解的Spring MVC环境搭建涉及众多步骤,从设置项目结构、配置MVC组件、编写控制器到测试和部署。这个过程旨在减少配置工作,提高开发效率,同时利用Spring强大的功能来构建健壮的Web应用程序。通过...

    Spring MVC 基于注解实例

    Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于...

    Spring MVC REST Demo

    Spring MVC 是一个强大的Java框架,用于构建Web应用程序,而REST(Representational State Transfer)是一种软件架构风格,常用于创建Web服务。"Spring MVC REST Demo"是一个示例项目,旨在展示如何在Spring MVC框架...

    毕设项目基于Spring + Spring MVC + Mybatis的销售管理系统源码.zip

    毕设项目基于Spring + Spring MVC + Mybatis的销售管理系统源码.zip毕设项目基于Spring + Spring MVC + Mybatis的销售管理系统源码.zip毕设项目基于Spring + Spring MVC + Mybatis的销售管理系统源码.zip毕设项目...

    spring mvc 3.0 rest 风格

    spring mvc 包括 实现各种结构url 和get post 方式 跳转传参 提交等实例,有注释 是初学springmvc 必备入门级 参考.只需5分钟,看了代码就能让你掌握 spring mvc rest 的各种实现

    spring mvc rest基础学习demo

    REST(Representational State Transfer,表现层状态转移)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,以JSON或XML格式交换数据。Spring MVC 提供了对REST的支持,使得开发REST服务变得简单。 1. **...

    spring MVC框架搭建

    Spring MVC 框架搭建是 Java Web 开发中的一种常见架构模式,它基于 Model-View-Controller(MVC)模式,使用注解方式来处理请求和响应。下面将详细介绍 Spring MVC 框架的搭建过程和与 Hibernate 的整合实例。 一...

    使用Spring MVC创建REST服务简单例子

    REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,它基于HTTP协议,实现了资源的分布式管理和访问。本教程将通过一个简单的例子,讲解如何利用Spring MVC创建REST服务。 首先,...

    基于spring+spring mvc+hibernate的智能农业信息管理系统

    本文将深入探讨一款基于Spring、Spring MVC和Hibernate架构的智能农业信息管理系统,以及如何利用Spring Security进行安全防护。 首先,Spring作为Java领域中的轻量级框架,其核心特性是依赖注入(Dependency ...

    基于Spring和Spring MVC实现可跨域访问的REST服务

    这篇博客“基于Spring和Spring MVC实现可跨域访问的REST服务”深入探讨了如何使用这两个流行的Java框架来创建这样的服务。Spring作为核心框架提供依赖注入和整体架构支持,而Spring MVC作为其Web模块,专门用于构建...

    精通Spring MVC 4

    本书共计10章,分别介绍了快速搭建Spring Web应用、精通MVC结构、URL映射、文件上传与错误处理、创建Restful应用、保护应用、单元测试与验收测试、优化请求、将Web应用部署到云等内容,循序渐进地讲解了Spring MVC4...

    基于Spring+Spring MVC+MyBatis的图书馆管理系统(带完整文档报告,E-R图)课设

    包含课设要求所有资源 基于Spring + Spring MVC + MyBatis的图书馆管理系统,使用Maven进行包管理。主要功能包括:图书查询、图书管理、图书编辑、读者管理、图书的借阅与归还以及借还日志记录等。

    spring3.0 mvc和rest入门例子

    Spring 3.0 MVC 和 REST 是 Java Web 开发中的重要组成部分,它们为构建现代、高效的应用程序提供了强大的框架支持。本文将深入探讨这两个概念以及如何通过一个入门实例来理解它们。 Spring MVC(Model-View-...

    spring mvc 搭建依赖包

    Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建模型-视图-控制器(MVC)架构的应用程序提供了强大的支持。Spring MVC 的核心是解耦应用程序的业务逻辑和用户界面,使得开发人员可以专注于业务逻辑的实现,...

    Spring Boot——2分钟构建spring web mvc REST风格HelloWorld

    REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,以JSON或XML格式传输数据。在Spring Boot中,我们可以轻松地创建RESTful Web服务。 **Spring MVC** Spring MVC是...

    Spring MVC + Mybatis+Spring实现的个人博客系统

    这是一个基于Spring MVC、Mybatis和Spring框架实现的个人博客系统,涵盖了Web开发中的后端架构设计、数据库管理和前端展示等多个方面。以下将详细介绍这个系统的关键知识点: **1. Spring MVC** Spring MVC是Spring...

    基于 Java ssh整合 开源博客系统 spring mvc,hibernate,spring,maven 整合开发

    【标题】中的“基于 Java ssh整合 开源博客系统”指的是一个使用Java技术栈开发的开源博客平台,这里的“ssh”是三个Java框架的缩写,分别代表Spring、Struts和Hibernate。Spring MVC、Hibernate和Spring是Java Web...

    基于ssm(spring+spring mvc+mybatis+maven)高仿bilibili视频网站项目源码.zip

    基于ssm(spring+spring mvc+mybatis+maven)高仿bilibili视频网站项目源码.zip 基于ssm(spring+spring mvc+mybatis+maven)高仿bilibili视频网站项目源码.zip 基于ssm(spring+spring mvc+mybatis+maven)高仿bilibili...

    spring mvc 3.2 rest配置 文件

    REST(Representational State Transfer)是一种软件架构风格,常用于构建Web服务,强调资源的识别和操作。本篇文章将深入探讨Spring MVC 3.2中配置REST服务的关键点。 首先,`dispatcher-servlet.xml`是Spring MVC...

Global site tag (gtag.js) - Google Analytics