• 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
  • 相关阅读:
    C#封装(访问修饰符)和方法
    源文件声明规则和import、package
    throw和throws 的区别
    曲率计算
    react组件三大核心属性之一refs;react中的事件处理
    react脚手架,样式模块化
    es6 class类中可以直接写赋值语句
    es6 class类内部的方法自动开启了严格模式
    react脚手架
    react三大核心之一props
  • 原文地址:https://www.cnblogs.com/1138720556Gary/p/11493169.html
Copyright © 2020-2023  润新知