SpringMvc学习笔记五

Restful 风格路由

1. 配置类

1.1、SpringMvcConfig配置类

java 复制代码
@Configuration
@ComponentScan({"com.itheima.controller", "com.itheima.config"})   方式1.2 添加com.itheima.config 扫描目录
@EnableWebMvc
public class SpringMvcConfig {
}

1.2、ServletContainerInitConfig类

java 复制代码
public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {


    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringMvcConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }


    // 乱码处理 过滤器
    @Override
    protected Filter[] getServletFilters() {
        CharacterEncodingFilter filter = new CharacterEncodingFilter();
        filter.setEncoding("UTF-8");
        return new Filter[]{filter};
    }
}

1.3、SpringMvcSupport配置类

java 复制代码
@Configuration  //方式1.1 添加Configuration注解
public class SpringMvcSupport extends WebMvcConfigurationSupport {
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 当访问 /pages的时候 ,走pages目录下访问 不要走mvc
        registry.addResourceHandler("/pages/**").addResourceLocations("/pages/");
    }
}
  • 这个类的主要作用 添加静态资源排除,让这些路径 不会进入SpringMvc动态请求里面

2. 控制器

2.1、 Restful 风格 增删改查

java 复制代码
@RestController
@RequestMapping("/books")
public class BookController {

    @PostMapping
    public String save(@RequestBody Book book){
        System.out.println("book save ==>" + book);
        return "{'module':'book save success'}";
    }

    @GetMapping
    public List<Book> getAll(){
        Book book1 = new Book();
        book1.setType("计算机");
        book1.setName("SpringMVC入门教程");
        book1.setDescription("小试牛刀");


        Book book2 = new Book();
        book2.setType("计算机");
        book2.setName("SpringMVC项目实战");
        book2.setDescription("一代总是");

        List<Book> bookList = new ArrayList<>();
        bookList.add(book1);
        bookList.add(book2);


        return bookList;
    }

    @DeleteMapping("/{id}")
    public String delete(@PathVariable Integer id){
        System.out.println("book delete id = "+ id);
        return "{'module':'book delete success'}";
    }


    @PutMapping
    public String update(@RequestBody Book book){
        System.out.println("book update book = "+ book);
        return "{'module':'book update success'}";
    }
}
  • @RestController 声明为Rest风格控制器

  • @RequestMapping("/books") 路径

  • @PostMapping Post请求

  • @GetMapping Get请求

  • @DeleteMapping("/{id}") Delete请求

  • @PutMapping Put请求

  • Json格式参数必须加上@ReqeustBody 注解

相关推荐
@小博的博客3 小时前
【Linux探索学习】第二篇Linux的基本指令(2)——开启Linux学习第二篇
linux·运维·学习
007php0075 小时前
某大厂跳动面试:计算机网络相关问题解析与总结
java·开发语言·学习·计算机网络·mysql·面试·职场和发展
知识分享小能手5 小时前
微信小程序入门学习教程,从入门到精通,微信小程序核心 API 详解与案例(13)
前端·javascript·学习·react.js·微信小程序·小程序·vue
递归不收敛6 小时前
吴恩达机器学习课程(PyTorch 适配)学习笔记:3.3 推荐系统全面解析
pytorch·学习·机器学习
又是忙碌的一天8 小时前
前端学习 JavaScript(2)
前端·javascript·学习
蒙奇D索大8 小时前
【数据结构】考研数据结构核心考点:二叉排序树(BST)全方位详解与代码实现
数据结构·笔记·学习·考研·算法·改行学it
玲娜贝儿--努力学习买大鸡腿版8 小时前
推荐算法学习笔记(十九)阿里SIM 模型
笔记·学习·推荐算法
光影少年8 小时前
Flutter生态及学习路线
学习·flutter
尤利乌斯.X8 小时前
复杂网络仿真从入门到精通:0 学习路线
网络·学习·matlab·仿真·复杂网络
梦幻精灵_cq9 小时前
70行代码展现我的“毕生”编程能力
学习