@RestController实现spring自己风格的rest的webservice(不用jax-rs包)

package com.jimmy.mywebservice.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestController;

import com.jimmy.mywebservice.bean.User;

@RestController
public class StuRestController {

@Autowired User userDetails;  
    @RequestMapping(value="/springcontent",  
            method=RequestMethod.GET,produces={"application/xml", "application/json"})  
    @ResponseStatus(HttpStatus.OK)  
    public User getUser() {  
    User userDetails = new User();  
        userDetails.setUserName("Krishna");  
        userDetails.setEmailId("krishna@gmail.com"); 
        System.out.println("test ");
        return userDetails;  
    }  
  
    @RequestMapping(value="/springcontent.htm", method=RequestMethod.GET)  
    @ResponseStatus(HttpStatus.OK)  
    public String getUserHtml() {  
        //Test HTML view  
        return "example";  
    }  
}


配置spring-mvc.xml:

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


<context:component-scan base-package="com.jimmy.mywebservice" />


<bean id="userDetails" class="com.jimmy.mywebservice.bean.User"/>
<mvc:annotation-driven content-negotiation-manager="contentManager"/>
<bean id="contentManager"
                class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean">
                <property name="favorPathExtension" value="true"/>
                <property name="ignoreAcceptHeader" value="true" />
                <property name="defaultContentType" value="text/html" />
                <property name="useJaf" value="false"/>
                <property name="mediaTypes">
               <map>
                   <entry key="json" value="application/json" />   //重要
                   <entry key="html" value="text/html" />                 //重要
                   <entry key="xml" value="application/xml" />       //重要

               </map>
                </property>
        </bean>
<bean id="jspViewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>

</beans>


访问方式:

方式一:http://localhost:8080//springcontent.xml

输出:<user userName="Krishna" emailId="krishna@gmail.com"/>

方式二:http://localhost:8080//springcontent.json

输出:{"userName":"Krishna","emailId":"krishna@gmail.com"}

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值