JAX-RS 和 Spring 整合开发

来源:互联网 发布:淘宝买家卖家账户分开 编辑:程序博客网 时间:2024/06/09 21:02

1.建立maven web 项目
2.导入maven坐标

        <!-- 使用log4j日志实现 -->        <dependency>            <groupId>org.slf4j</groupId>            <artifactId>slf4j-log4j12</artifactId>            <version>1.7.12</version>        </dependency>        <!-- 使用 cxf rs 开发 -->        <dependency>            <groupId>org.apache.cxf</groupId>            <artifactId>cxf-rt-frontend-jaxrs</artifactId>            <version>3.0.1</version>        </dependency>        <!-- 使用rs客户端 -->        <dependency>            <groupId>org.apache.cxf</groupId>            <artifactId>cxf-rt-rs-client</artifactId>            <version>3.0.1</version>        </dependency>        <!-- 在cxf扩展提供者,提供转换为json接口 -->        <dependency>            <groupId>org.apache.cxf</groupId>            <artifactId>cxf-rt-rs-extension-providers</artifactId>            <version>3.0.1</version>        </dependency>        <!--cxf  扩展提供者 转换json 默认需要一个工具包  -->        <dependency>            <groupId>org.codehaus.jettison</groupId>            <artifactId>jettison</artifactId>            <version>1.3.7</version>        </dependency>        <!-- spring核心 -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context</artifactId>            <version>4.1.7.RELEASE</version>        </dependency>        <!--spring web集成  -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-web</artifactId>            <version>4.1.7.RELEASE</version>        </dependency>        <!--spring 整合Junit  -->        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-test</artifactId>            <version>4.1.7.RELEASE</version>        </dependency>        <!-- Junit开发包 -->        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.12</version>        </dependency></dependencies>     配置启动端口    3.配置web.xml    <!-- spring配置文件位置 -->    <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath:applicationContext.xml</param-value>    </context-param>    <!-- spring核心监听器 -->    <listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener>    <!-- cxf基于web访问 -->    <servlet>        <servlet-name>CXFService</servlet-name>        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>CXFService</servlet-name>        <url-pattern>/xxx/*</url-pattern>    </servlet-mapping>4.创建实体与service5.配置applicationContext.xml    引入名称空间 xmlns:jaxrs="http://cxf.apache.org/jaxrs";  http://cxf.apache.org/jaxrshttp://cxf.apache.org/schemas/jaxrs.xsd   <!--    配置服务端        address客户端访问服务路径        serviceBean 配置实现类     -->    〈jaxrs:server id="xxx" address="/xxx">        <jaxrs:serviceBeans>            <bean class="service实现类全名"/>        </jaxrs:serviceBeans>        <jaxrs:inInterceptors>            <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>        </jaxrs:inInterceptors>        <jaxrs:outInterceptors>            <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>        </jaxrs:outInterceptors>    </jaxrs:server>6.客户端    // create 建立与调用服务资源路径项链    // type 发送给服务器数据格式--@consumer    // accept 接收服务器数据格式--@produces    // 采用http协议哪种方式访问服务器    最终访问资源服务路径        服务器根目录地址+项目名称+web.xml配置+applicationContext.xml address配置 + 类 @Path + 方法 @Path    Collection<? extends JavaBean> collection = WebClient.create("最终访问资源服务路径")    .accept(MediaType.APPLICATION_XML)    .getCollection(JavaBean.class);    System.out.println(collection);