Jersey与Spring联姻,对JavaBean的支持
来源:互联网 发布:亚马逊kindle阅读软件 编辑:程序博客网 时间:2024/05/16 17:59
- 前言
- 配置
- pomxml配置如下
- 创建个TestRojava用于传递结构体
- 编写Jersey的资源创建api接口
- 测试
- 总结
1.前言
对于数据量较大的提交,我们一般习惯于用javabean把数据封装起来一起提交,在服务端使用json数据格式接收,映射到jababean上。这里简单写几个例子。
以Spring集成Jersey开发,实现rest约束例子 的例子源码没基础开发,下载地址 提取码:2itw
2.配置
1.pom.xml配置如下:
<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.jax</groupId> <artifactId>Jersey</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> <name>Jersey</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.7</java.version> <java.encoding>UTF-8</java.encoding> <spring-version>4.2.0.RELEASE</spring-version> <aspectj-version>1.8.6</aspectj-version> <jersey-spring>1.18</jersey-spring> </properties> <dependencies> <!-- ================================================= --> <!-- Spring框架 --> <!-- ================================================= --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-websocket</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-messaging</artifactId> <version>${spring-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${spring-version}</version> </dependency> <!-- ================================================= --> <!-- AOP相关依赖 --> <!-- ================================================= --> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>${aspectj-version}</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectj-version}</version> </dependency> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>3.1</version> </dependency> <!--POJO对象被序列化成 JSON 对象 --> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>2.26</version> <exclusions> <exclusion> <groupId>javax.ws.rs</groupId> <artifactId>javax.ws.rs-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jettison</artifactId> <version>2.26</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-json</artifactId> <version>1.18</version> </dependency> <!-- 接入spring注解 --> <dependency> <groupId>com.sun.jersey.contribs</groupId> <artifactId>jersey-spring</artifactId> <version>1.18</version> <exclusions> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </exclusion> <exclusion> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <finalName>JerseySpring</finalName> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <version>1.1</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <warName>JerseySpring</warName> <failOnMissingWebXml>false</failOnMissingWebXml> <!--<webXml>WebContent/WEB-INF/web.xml</webXml> --> <webResources> <resource> <directory>WebContent</directory> <filtering>false</filtering> </resource> </webResources> </configuration> </plugin> </plugins> </build></project>
其中重点是:
<!--POJO对象被序列化成 JSON 对象 --> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jackson</artifactId> <version>2.26</version> <exclusions> <exclusion> <groupId>javax.ws.rs</groupId> <artifactId>javax.ws.rs-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.glassfish.jersey.media</groupId> <artifactId>jersey-media-json-jettison</artifactId> <version>2.26</version> </dependency> <dependency> <groupId>com.sun.jersey</groupId> <artifactId>jersey-json</artifactId> <version>1.18</version> </dependency>
这几个jar的依赖
2.创建个TestRo.java用于传递结构体:
import javax.xml.bind.annotation.XmlRootElement;@XmlRootElementpublic class TestRo { private String id; private String name; private String age; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; }}
重点关注
@XmlRootElement
用该注解标识javabean,代码里变量名和传递的参数名保持一致。
3.编写Jersey的资源,创建api接口
import javax.ws.rs.Consumes;import javax.ws.rs.GET;import javax.ws.rs.POST;import javax.ws.rs.Path;import javax.ws.rs.Produces;import javax.ws.rs.core.MediaType;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import com.jax.JerseySpring.bean.TestRo;import com.jax.JerseySpring.mgr.acct.IAcctMgr;@Component@Path("/demo")public class HelloResources { @Autowired public IAcctMgr acctMgr; @GET @Path("/hello") public String acct() { String result = "failure"; try { result = acctMgr.getAcctByCd("9527"); System.out.println("结果:" + result); } catch (Exception e) { System.out.println(e); } return result; } /** * 测试传输javabean */ @POST @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) @Path("/") public String addOrder1(TestRo testRo) { try { return "post方式,新建成功:"; } catch (Throwable e) { System.out.println(e); } return "post方式,新建失败"; }}
这里同时也测试了使用某个资源的根路径创建URI的例子,对比:
api/demo/
和
api/demo/hello
3.测试
提交的数据如下图:
后台接收到的数据如下:
说明后台成功的接收到的javabean数据。
4.总结
以上是使用JAXB的方式传递javabean,其中已经够大部分情况下使用,只要是基本HTTP方式传输的,当然还有一种基本POJO方式。大家可参考Jersey框架二:Jersey对JSON的支持这篇文章,这里不在赘述。
源码下载 密码: itex
阅读全文
0 0
- Jersey与Spring联姻,对JavaBean的支持
- Jersey对JSON的支持
- Jersey 入门与Javabean
- Jersey 入门与Javabean
- Jersey 入门与Javabean
- Jersey 入门与Javabean
- Jersey入门与javaBean
- Jersey框架二:Jersey对JSON的支持
- Jersey框架三:Jersey对HTTPS的支持
- Jersey框架二:Jersey对JSON的支持
- Jersey框架三:Jersey对HTTPS的支持
- Jersey框架二:Jersey对JSON的支持
- Jersey对返回Json数据格式的支持
- spring与jersey的集成
- StrutsCX与XSLT的联姻
- ML与iOS的联姻
- Spring 对 JDBC 的支持与Spring 中的事务管理
- Jersey 入门与Javabean @QueryParam @PathParam @FormParam
- the silence man,
- 手把手教你AndroidStudio多渠道打包
- controller通过map返回减少dto类的创建
- easyui 验证
- csdn如何转载别人的文章
- Jersey与Spring联姻,对JavaBean的支持
- mysql sql常用技巧
- linux 下所有格式打包解压方法(tar、bz2、rar)详解
- PCA 降维算法详解 以及代码示例
- jxls使用模板导出Excel表格
- 深入理解Redis中五种数据类型总结
- 一条进程的栈区、堆区、数据区和代码区在内存中的映射
- 搜狗输入法,怎么打声调?
- 二十一世纪计算 | 大数据和网络分析的可扩展算法