JavaWeb-RESTful(三)_使用SpringMVC开发RESTful_下

 

 

  JavaWeb-RESTful(一)_RESTful初认识  传送门

  JavaWeb-RESTful(二)_使用SpringMVC开发RESTful_上  传送门

  JavaWeb-RESTful(三)_使用SpringMVC开发RESTful_下  传送门

  项目已上传至github  传送门

 

  Learn

    一、单元测试:添加用户

    二、单元测试:修改用户

    三、单元测试:删除用户

    四、SpringBoot默认处理异常路径

 

 

一、单元测试:添加用户

  在MainController.java中添加addUser()添加用户的单元测试方法

        @Test
        public void addUser() throws Exception
        {
            mockMvc.perform(MockMvcRequestBuilders.post("/user")
                    .contentType(MediaType.APPLICATION_JSON_UTF8)
                    .content("{\"username\":\"Gary\"}"))
                    .andExpect(MockMvcResultMatchers.status().isOk())
                    .andExpect(MockMvcResultMatchers.jsonPath("$.id").value("1"));
            
            
        }

 

  给User实体对象设置三个熟悉,id、username、password

    private String username;
    private String password;
    private String id;

 

  通过id和username获得的试图都是简单试图,通过password获得的试图是复杂试图

    @JsonView(UserSimpleView.class)
    public String getId() {
        return id;
    }

    @JsonView(UserSimpleView.class)
    public String getUsername() {
        return username;
    }

    @JsonView(UserDetailView.class)
    public String getPassword() {
        return password;
    }

 

  在UserController.java中通过addUser()方法获得MainController.java中的addUser()的POST请求

    @RequestMapping(value="/user",method= RequestMethod.POST)
    public User addUser(@RequestBody User user)
    {
        //传输json格式的时候,一定要记得加上@RequestBody注解
        //输出 null
        System.out.println(user.getPassword());
        //输出 Gary
        System.out.println(user.getUsername());
        
        user.setId("1");
        return user;
    }

 

 

 

package com.Gary.GaryRESTful;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class GaryResTfulApplication {

    public static void main(String[] args) {
        SpringApplication.run(GaryResTfulApplication.class, args);
    }

}
GaryResTfulApplication.java

 

package com.Gary.GaryRESTful.controller;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;



//这是SpringBoot测试类

@RunWith(SpringRunner.class)
@SpringBootTest
public class MainController {

        @Autowired
        private WebApplicationContext webApplicationContext;
            
        //SpringMV单元测试独立测试类
        private MockMvc mockMvc;
        
        
        @Before
        public void before()
        {
            //创建独立测试类
            mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
        }
        
        
        //@Test
        //查询user
        public void test() throws Exception
        {
            //发起一个Get请求
            String str = mockMvc.perform(MockMvcRequestBuilders.get("/user")
                    .param("username", "Gary")
                        //json的形式发送一个请求
                        .contentType(MediaType.APPLICATION_JSON_UTF8))
                        //期望服务器返回什么(期望返回的状态码为200)
                        .andExpect(MockMvcResultMatchers.status().isOk())
                        //期望服务器返回json中的数组长度为3
                        .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3))
                        .andReturn().getResponse().getContentAsString();
            
            System.out.println("查询简单试图"+str);
        }
        
        //@Test
        public void getInfo() throws Exception
        {
            //发起一个get请求,查看用户详情
            String str = mockMvc.perform(MockMvcRequestBuilders.get("/user/1")
                    .contentType(MediaType.APPLICATION_JSON_UTF8))
                    .andExpect(MockMvcResultMatchers.status().isOk())
                    .andExpect(MockMvcResultMatchers.jsonPath("$.username").value("Gary"))
                    .andReturn().getResponse().getContentAsString();
            
            System.out.println("查询复杂试图"+str);
                    
        }
        
        
        @Test
        public void addUser() throws Exception
        {
            mockMvc.perform(MockMvcRequestBuilders.post("/user")
                    .contentType(MediaType.APPLICATION_JSON_UTF8)
                    .content("{\"username\":\"Gary\"}"))
                    .andExpect(MockMvcResultMatchers.status().isOk())
                    .andExpect(MockMvcResultMatchers.jsonPath("$.id").value("1"));
            
            
        }
        
        
        
        
        
        
}
MainController.java

 

package com.Gary.GaryRESTful.controller;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;
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.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.Gary.GaryRESTful.dto.User;
import com.fasterxml.jackson.annotation.JsonView;

//表示这个Controller提供R二十天API
@RestController
public class UserController {

    
    @RequestMapping(value="/user",method = RequestMethod.GET)
    /*
     * default value     默认
     * name             请求的名字
     * required            是否是必须的,true
     * value            别名
     * 
     * */
    @JsonView(User.UserSimpleView.class)
    public List<User> query(@RequestParam(name="username",required=false) String username)
    {
        System.out.println(username);
        //满足期望服务器返回json中的数组长度为3
        List<User> list = new ArrayList<>();
        list.add(new User());
        list.add(new User());
        list.add(new User());
        return list;
        
    }
    
    @RequestMapping(value="/user/{id}",method= RequestMethod.GET)
    //将@PathVariable路径中的片段映射到java代码中    
    @JsonView(User.UserDetailView.class)
    public User getInfo(@PathVariable String id)
    {
        User user = new User();
        user.setUsername("Gary");
        return user;
    }
    
    @RequestMapping(value="/user",method= RequestMethod.POST)
    public User addUser(@RequestBody User user)
    {
        //传输json格式的时候,一定要记得加上@RequestBody注解
        //输出 null
        System.out.println(user.getPassword());
        //输出 Gary
        System.out.println(user.getUsername());
        
        user.setId("1");
        return user;
    }
    
    
    
}
UserController.java

 

package com.Gary.GaryRESTful.dto;

import com.fasterxml.jackson.annotation.JsonView;

public class User {

    //简单试图 只有一个username
    public interface UserSimpleView{};
    //复杂试图 有username 和   password 
    public interface UserDetailView extends UserSimpleView{};

    private String username;
    private String password;
    private String id;
    
    @JsonView(UserSimpleView.class)
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    @JsonView(UserSimpleView.class)
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    
    @JsonView(UserDetailView.class)
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    
}
User.java

 

 

二、单元测试:修改用户

  在MainController.java中添加updataUser()修改用户的单元测试方法

        //修改用户
        @Test
        public void updataUser() throws Exception
        {
            mockMvc.perform(MockMvcRequestBuilders.put("/user/1")
                    .contentType(MediaType.APPLICATION_JSON_UTF8)
                    .content("{\"username\":\"Garyary\",\"id\":\"1\"}"))
            .andExpect(MockMvcResultMatchers.status().isOk())
            .andExpect(MockMvcResultMatchers.jsonPath("$.id").value("1"));
            
        }

 

  在UserController.java中接收来自updataUser的请求

    //修改用户资料
    @RequestMapping(value="/user/{id}",method = RequestMethod.PUT)
    public User updataUser(@RequestBody User user)
    {
        System.out.println(user.getId());
        System.out.println(user.getUsername());
        System.out.println(user.getPassword());
        
        return user;
    }

 

 

 

package com.Gary.GaryRESTful;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class GaryResTfulApplication {

    public static void main(String[] args) {
        SpringApplication.run(GaryResTfulApplication.class, args);
    }

}
GaryResTfulApplication.java

 

package com.Gary.GaryRESTful.controller;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;



//这是SpringBoot测试类

@RunWith(SpringRunner.class)
@SpringBootTest
public class MainController {

        @Autowired
        private WebApplicationContext webApplicationContext;
            
        //SpringMV单元测试独立测试类
        private MockMvc mockMvc;
        
        
        @Before
        public void before()
        {
            //创建独立测试类
            mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
        }
        
        
        //@Test
        //查询user
        public void test() throws Exception
        {
            //发起一个Get请求
            String str = mockMvc.perform(MockMvcRequestBuilders.get("/user")
                    .param("username", "Gary")
                        //json的形式发送一个请求
                        .contentType(MediaType.APPLICATION_JSON_UTF8))
                        //期望服务器返回什么(期望返回的状态码为200)
                        .andExpect(MockMvcResultMatchers.status().isOk())
                        //期望服务器返回json中的数组长度为3
                        .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3))
                        .andReturn().getResponse().getContentAsString();
            
            System.out.println("查询简单试图"+str);
        }
        
        //@Test
        public void getInfo() throws Exception
        {
            //发起一个get请求,查看用户详情
            String str = mockMvc.perform(MockMvcRequestBuilders.get("/user/1")
                    .contentType(MediaType.APPLICATION_JSON_UTF8))
                    .andExpect(MockMvcResultMatchers.status().isOk())
                    .andExpect(MockMvcResultMatchers.jsonPath("$.username").value("Gary"))
                    .andReturn().getResponse().getContentAsString();
            
            System.out.println("查询复杂试图"+str);
                    
        }
        
        //添加用户
        //@Test
        public void addUser() throws Exception
        {
            mockMvc.perform(MockMvcRequestBuilders.post("/user")
                    .contentType(MediaType.APPLICATION_JSON_UTF8)
                    .content("{\"username\":\"Gary\"}"))
                    .andExpect(MockMvcResultMatchers.status().isOk())
                    .andExpect(MockMvcResultMatchers.jsonPath("$.id").value("1"));
            
            
        }
        
        //修改用户
        @Test
        public void updataUser() throws Exception
        {
            mockMvc.perform(MockMvcRequestBuilders.put("/user/1")
                    .contentType(MediaType.APPLICATION_JSON_UTF8)
                    .content("{\"username\":\"Garyary\",\"id\":\"1\"}"))
            .andExpect(MockMvcResultMatchers.status().isOk())
            .andExpect(MockMvcResultMatchers.jsonPath("$.id").value("1"));
            
        }
        
        
        
        
}
MainController.java

 

package com.Gary.GaryRESTful.controller;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
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.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.Gary.GaryRESTful.dto.User;
import com.fasterxml.jackson.annotation.JsonView;

//表示这个Controller提供R二十天API
@RestController
public class UserController {

    
    @RequestMapping(value="/user",method = RequestMethod.GET)
    /*
     * default value     默认
     * name             请求的名字
     * required            是否是必须的,true
     * value            别名
     * 
     * */
    @JsonView(User.UserSimpleView.class)
    public List<User> query(@RequestParam(name="username",required=false) String username)
    {
        System.out.println(username);
        //满足期望服务器返回json中的数组长度为3
        List<User> list = new ArrayList<>();
        list.add(new User());
        list.add(new User());
        list.add(new User());
        return list;
        
    }
    
    @RequestMapping(value="/user/{id}",method= RequestMethod.GET)
    //将@PathVariable路径中的片段映射到java代码中    
    @JsonView(User.UserDetailView.class)
    public User getInfo(@PathVariable String id)
    {
        User user = new User();
        user.setUsername("Gary");
        return user;
    }
    
    @RequestMapping(value="/user",method= RequestMethod.POST)
    public User addUser(@RequestBody User user)
    {
        //传输json格式的时候,一定要记得加上@RequestBody注解
        //输出 null
        System.out.println(user.getPassword());
        //输出 Gary
        System.out.println(user.getUsername());
        
        user.setId("1");
        return user;
    }
    
    //修改用户资料
    @RequestMapping(value="/user/{id}",method = RequestMethod.PUT)
    public User updataUser(@RequestBody User user)
    {
        System.out.println(user.getId());
        System.out.println(user.getUsername());
        System.out.println(user.getPassword());
        
        return user;
    }
    
}
UserController.java

 

package com.Gary.GaryRESTful.dto;

import com.fasterxml.jackson.annotation.JsonView;

public class User {

    //简单试图 只有一个username
    public interface UserSimpleView{};
    //复杂试图 有username 和   password 
    public interface UserDetailView extends UserSimpleView{};

    private String username;
    private String password;
    private String id;
    
    @JsonView(UserSimpleView.class)
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    @JsonView(UserSimpleView.class)
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    
    @JsonView(UserDetailView.class)
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    
}
User.java

 

 

三、单元测试:删除用户

  在MainController.java中添加deleteUser()修改用户的单元测试方法

        //删除用户
        @Test
        public void deleteUser() throws Exception
        {
            mockMvc.perform(MockMvcRequestBuilders.delete("/user/1")
                    .contentType(MediaType.APPLICATION_JSON_UTF8))
                    .andExpect(MockMvcResultMatchers.status().isOk());
        }

 

  在UserController.java中接收来自deleteUser的请求

    @RequestMapping(value="/user/{id}",method = RequestMethod.DELETE)
    public User deleteUser(@PathVariable String id)
    {
        System.out.println(id);
        return null;
    }

 

 

 

package com.Gary.GaryRESTful;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class GaryResTfulApplication {

    public static void main(String[] args) {
        SpringApplication.run(GaryResTfulApplication.class, args);
    }

}
GaryResTfulApplication.java

 

package com.Gary.GaryRESTful.controller;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;



//这是SpringBoot测试类

@RunWith(SpringRunner.class)
@SpringBootTest
public class MainController {

        @Autowired
        private WebApplicationContext webApplicationContext;
            
        //SpringMV单元测试独立测试类
        private MockMvc mockMvc;
        
        
        @Before
        public void before()
        {
            //创建独立测试类
            mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
        }
        
        
        //@Test
        //查询user
        public void test() throws Exception
        {
            //发起一个Get请求
            String str = mockMvc.perform(MockMvcRequestBuilders.get("/user")
                    .param("username", "Gary")
                        //json的形式发送一个请求
                        .contentType(MediaType.APPLICATION_JSON_UTF8))
                        //期望服务器返回什么(期望返回的状态码为200)
                        .andExpect(MockMvcResultMatchers.status().isOk())
                        //期望服务器返回json中的数组长度为3
                        .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3))
                        .andReturn().getResponse().getContentAsString();
            
            System.out.println("查询简单试图"+str);
        }
        
        //@Test
        public void getInfo() throws Exception
        {
            //发起一个get请求,查看用户详情
            String str = mockMvc.perform(MockMvcRequestBuilders.get("/user/1")
                    .contentType(MediaType.APPLICATION_JSON_UTF8))
                    .andExpect(MockMvcResultMatchers.status().isOk())
                    .andExpect(MockMvcResultMatchers.jsonPath("$.username").value("Gary"))
                    .andReturn().getResponse().getContentAsString();
            
            System.out.println("查询复杂试图"+str);
                    
        }
        
        //添加用户
        //@Test
        public void addUser() throws Exception
        {
            mockMvc.perform(MockMvcRequestBuilders.post("/user")
                    .contentType(MediaType.APPLICATION_JSON_UTF8)
                    .content("{\"username\":\"Gary\"}"))
                    .andExpect(MockMvcResultMatchers.status().isOk())
                    .andExpect(MockMvcResultMatchers.jsonPath("$.id").value("1"));
            
            
        }
        
        //修改用户
        //@Test
        public void updataUser() throws Exception
        {
            mockMvc.perform(MockMvcRequestBuilders.put("/user/1")
                    .contentType(MediaType.APPLICATION_JSON_UTF8)
                    .content("{\"username\":\"Garyary\",\"id\":\"1\"}"))
            .andExpect(MockMvcResultMatchers.status().isOk())
            .andExpect(MockMvcResultMatchers.jsonPath("$.id").value("1"));
            
        }
        
        
        //删除用户
        @Test
        public void deleteUser() throws Exception
        {
            mockMvc.perform(MockMvcRequestBuilders.delete("/user/1")
                    .contentType(MediaType.APPLICATION_JSON_UTF8))
                    .andExpect(MockMvcResultMatchers.status().isOk());
        }
}
MainController.java

 

package com.Gary.GaryRESTful.controller;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
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.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.Gary.GaryRESTful.dto.User;
import com.fasterxml.jackson.annotation.JsonView;

//表示这个Controller提供R二十天API
@RestController
public class UserController {

    
    @RequestMapping(value="/user",method = RequestMethod.GET)
    /*
     * default value     默认
     * name             请求的名字
     * required            是否是必须的,true
     * value            别名
     * 
     * */
    @JsonView(User.UserSimpleView.class)
    public List<User> query(@RequestParam(name="username",required=false) String username)
    {
        System.out.println(username);
        //满足期望服务器返回json中的数组长度为3
        List<User> list = new ArrayList<>();
        list.add(new User());
        list.add(new User());
        list.add(new User());
        return list;
        
    }
    
    @RequestMapping(value="/user/{id}",method= RequestMethod.GET)
    //将@PathVariable路径中的片段映射到java代码中    
    @JsonView(User.UserDetailView.class)
    public User getInfo(@PathVariable String id)
    {
        User user = new User();
        user.setUsername("Gary");
        return user;
    }
    
    @RequestMapping(value="/user",method= RequestMethod.POST)
    public User addUser(@RequestBody User user)
    {
        //传输json格式的时候,一定要记得加上@RequestBody注解
        //输出 null
        System.out.println(user.getPassword());
        //输出 Gary
        System.out.println(user.getUsername());
        
        user.setId("1");
        return user;
    }
    
    //修改用户资料
    @RequestMapping(value="/user/{id}",method = RequestMethod.PUT)
    public User updataUser(@RequestBody User user)
    {
        System.out.println(user.getId());
        System.out.println(user.getUsername());
        System.out.println(user.getPassword());
        
        return user;
    }
    
    
    //删除
    @RequestMapping(value="/user/{id}",method = RequestMethod.DELETE)
    public User deleteUser(@PathVariable String id)
    {
        //输出删除的用户    可以查看JUnit中的状态吗
        System.out.println(id);
        return null;
    }
}
UserController.java

 

package com.Gary.GaryRESTful.dto;

import com.fasterxml.jackson.annotation.JsonView;

public class User {

    //简单试图 只有一个username
    public interface UserSimpleView{};
    //复杂试图 有username 和   password 
    public interface UserDetailView extends UserSimpleView{};

    private String username;
    private String password;
    private String id;
    
    @JsonView(UserSimpleView.class)
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    @JsonView(UserSimpleView.class)
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    
    @JsonView(UserDetailView.class)
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    
}
User.java

 

  在UserController.java中通过@RequestMapping("/user")映射来处理所有user请求,使代码变得简介一些

package com.Gary.GaryRESTful.controller;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
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.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.Gary.GaryRESTful.dto.User;
import com.fasterxml.jackson.annotation.JsonView;

//表示这个Controller提供R二十天API
@RestController
@RequestMapping("/user")
public class UserController {

    
    //@RequestMapping(value="/user",method = RequestMethod.GET)
    /*
     * default value     默认
     * name             请求的名字
     * required            是否是必须的,true
     * value            别名
     * 
     * */
    @GetMapping
    @JsonView(User.UserSimpleView.class)
    public List<User> query(@RequestParam(name="username",required=false) String username)
    {
        System.out.println(username);
        //满足期望服务器返回json中的数组长度为3
        List<User> list = new ArrayList<>();
        list.add(new User());
        list.add(new User());
        list.add(new User());
        return list;
        
    }
    

    //@RequestMapping(value="/user/{id}",method= RequestMethod.GET)
    //将@PathVariable路径中的片段映射到java代码中    
    @GetMapping("/{id}")
    @JsonView(User.UserDetailView.class)
    public User getInfo(@PathVariable String id)
    {
        User user = new User();
        user.setUsername("Gary");
        return user;
    }
    
    //添加用户
    //@RequestMapping(value="/user",method= RequestMethod.POST)
    @PostMapping
    public User addUser(@RequestBody User user)
    {
        //传输json格式的时候,一定要记得加上@RequestBody注解
        //输出 null
        System.out.println(user.getPassword());
        //输出 Gary
        System.out.println(user.getUsername());
        
        user.setId("1");
        return user;
    }
    
    //修改用户资料
    //@RequestMapping(value="/user/{id}",method = RequestMethod.PUT)
    @PutMapping("/{id}")
    public User updataUser(@RequestBody User user)
    {
        System.out.println(user.getId());
        System.out.println(user.getUsername());
        System.out.println(user.getPassword());
        
        return user;
    }
    
    
    //删除
    //@RequestMapping(value="/user/{id}",method = RequestMethod.DELETE)
    @DeleteMapping("/{id}")
    public User deleteUser(@PathVariable String id)
    {
        //输出删除的用户    可以查看JUnit中的状态吗
        System.out.println(id);
        return null;
    }
}
UserController.java

 

 

四、SpringBoot默认处理异常路径

  在项目static->error目录下创建一个404.html,运行项目

 

 

 

 

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>404页面</title>
</head>
<body>
<h1>404错误,你的页面找不到了!!!</h1>
</body>
</html>
404.html

 

posted @ 2019-09-09 17:51  Cynical丶Gary  阅读(309)  评论(0编辑  收藏  举报