Spring MVC风格的restful接口开发

项目原本是springmvc项目,新增了resuful接口服务端。

205230_i256_2499253.png

 

IUserService.java

package com.yq.publicproject.server;

import javax.ws.rs.core.MediaType;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import com.yq.publicproject.model.User;

/**
 * spring MVC风格的restful接口 
 * @author Administrator
 *
 */
@RequestMapping("/userService")  
@Controller 
public interface IUserService {
	@RequestMapping(value = "/hello", produces = "text/plain;charset=UTF-8")  
    public @ResponseBody  
    String hello();  
  
      
    @RequestMapping(value = "/say/{msg}", produces = "application/json;charset=UTF-8")  
    public @ResponseBody  
    String say(@PathVariable(value = "msg") String msg);  
  
      
    @RequestMapping(value = "/user/{id:\\d+}", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")  
    public @ResponseBody  
    String getUser(@PathVariable("id") int id);  
      
      
    @RequestMapping(value = "/user/{id:\\d+}", method = RequestMethod.DELETE)  
    public @ResponseBody Object deleteUser(@PathVariable("id") int id) ;  
      
    /** 
     * 推荐使用,这种可以解决绝大多数问题 
     * @param person 
     * @return 
     */  
    @RequestMapping(value = "/user", method = RequestMethod.POST,   
            produces = {MediaType.APPLICATION_JSON,"application/json;charset=UTF-8"},  
            consumes = {MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})  
    public String addUser(User user);  
      
      
    @RequestMapping(value = "/user", method = RequestMethod.PUT)  
    public @ResponseBody Object updateUser(@RequestBody User user);
}

 

UserService.java

package com.yq.publicproject.server.impl;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.fastjson.JSONObject;
import com.yq.publicproject.model.User;
import com.yq.publicproject.server.IUserService;

/**
 * spring MVC风格的restful接口 
 * @author Administrator
 *
 */
@Controller
public class UserService implements IUserService {
	
	/** 日志实例 */  
    private static final Logger logger = Logger.getLogger(UserService.class);  

    public @ResponseBody  
    String hello() {  
        logger.info("hello........");  
        return "你好!hello";  
    }  
  
    public @ResponseBody  
    String say(@PathVariable(value = "msg") String msg) {  
        return "{\"msg\":\"you say:'" + msg + "'\"}";  
    }  
  
    public @ResponseBody  
    String getUser(@PathVariable("id") int id) {  
        logger.info("获取人员信息id=" + id);  
        User user = new User();  
        user.setUserName("张三");  
        user.setUserId(id+"");  
          
        String jsonObject = JSONObject.toJSONString(user);  
        logger.info(jsonObject);  
        return jsonObject;  
    }  
      
    public Object deleteUser(@PathVariable("id") int id) {  
        logger.info("删除人员信息id=" + id);  
        JSONObject jsonObject = new JSONObject();  
            jsonObject.put("msg", "删除人员信息成功");  
    return jsonObject;  
    }  
  
  
    public @ResponseBody String addUser(@RequestBody User user) {  
        logger.info("注册人员信息成功id=" + user.getUserId());  
        JSONObject jsonObject = new JSONObject();  
        jsonObject.put("msg", "注册人员信息成功");  
        return jsonObject.toString();  
    }  
      
    public @ResponseBody Object updateUser(@RequestBody User user) {  
        logger.info("更新人员信息id=" + user.getUserId());  
        JSONObject jsonObject = new JSONObject();  
        jsonObject.put("msg", "更新人员信息成功");  
        return jsonObject.toString();  
    }

}

 

因为web.xml进行了如下配置,所有访问url都加上.htmls

<servlet>
		<description>spring mvc servlet</description>
		<servlet-name>rest</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>
				classpath:config/spring-mvc.xml
			</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>rest</servlet-name>
		<url-pattern>*.htmls</url-pattern>
	</servlet-mapping>

启动Tomcat服务,输入接口访问url。

1.http://localhost:8080/public_project/userService/hello.htmls

205938_CNmv_2499253.png

2.http://localhost:8080/public_project/userService/say/%E4%BD%A0%E8%BF%99%E4%B8%AA%E7%AC%A8%E8%9B%8B.htmls

205959_8jDd_2499253.png

3.http://localhost:8080/public_project/userService/user/1.htmls

id 为 1 有数据。

210021_LW9i_2499253.png

转载于:https://my.oschina.net/yq0128/blog/806033

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值