ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Rest风格

2022-07-20 23:00:19  阅读:169  来源: 互联网

标签:return springframework yang 风格 Rest org import com


REST风格,页面和后台数据交互

  • REST ,表现形式状态转换,资源描述风格。

  • 隐层资源的访问行为,无法通过地址得知对资源是何种操作

  • 书写简化。

  • 动作行为区分:

    1. GET(查询)select

    2. POST(新增/保存)insert

    3. PUT(修改/更新)update

    4. DELETE(删除)delete

  • 访问路经模块名称通常使用复数,也就是加s的格式描述,表示此类资源,而非单个资源。

    例:http://localhost/users

  • 根据REST风格对资源进行访问称为RESTful

    在参数旁边写

  • @PathVariable:用于接收路径参数,使用{参数名称}描述路径参数。

  • @RequestBody:用于接收josn数据

  • @RequestParam;用于接收url地址传参或者表单。绑定参数

    在方法上

  • @ResponseBody:用于响应json

    config

    1.SpringMvcConfig.java

    package com.yang.config;

    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.EnableWebMvc;

    /**
    * 这个是SpringMvc的配置类
    */
    @Configuration
    @ComponentScan({"com.yang.controller","com.yang.config"})
    @EnableWebMvc
    public class SpringMvcConfig {
    }

    2.

    package com.yang.config;

    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;


    /***
    * 这个是对访问mvc路径的拦截,配置放行
    */
    @Configuration
    public class SpringMvcSupport extends WebMvcConfigurationSupport {
       @Override
       protected void addResourceHandlers(ResourceHandlerRegistry registry) {
           //当访问/pages/???路径的时候,走pages目录下的内容
           registry.addResourceHandler("/pages/**").addResourceLocations("/pages/");
           registry.addResourceHandler("/js/**").addResourceLocations("/js/");
           registry.addResourceHandler("/css/**").addResourceLocations("/css/");

      }
    }

    container

    SpringMvcInitContainer.java

    package com.yang.container;

    import com.yang.config.SpringMvcConfig;
    import org.springframework.web.filter.CharacterEncodingFilter;
    import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;

    import javax.servlet.Filter;

    /**
    * 这个类是springMvc的容器类,进行初始化
    *   1.可以加载Spring配置
    *   2.可以加载SpringMvc的配置
    *   3.可以配置SpringMvc的的拦截路径,
    *   4.可以配置Spring过滤器,对于字符集的配置。
    */
    public class SpringMvcInitContainer 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[]{"/"};
      }
       //ctrl+O 重写的快捷键
       @Override
       protected Filter[] getServletFilters() {
           CharacterEncodingFilter encodingFilter = new CharacterEncodingFilter();
           encodingFilter.setEncoding("UTF-8");
           return new Filter[]{encodingFilter};
      }

    }

    controller

    1.bookController.java

    package com.yang.controller;

    import com.yang.domain.Book;
    import org.springframework.web.bind.annotation.*;

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

    @RestController
    @RequestMapping("/books")
    public class BookController {
       @PostMapping
       public String save(@RequestBody Book book){
           System.out.println("dream..."+book);
           return "{'model':'bookSave...'}";
      }
       @GetMapping
       public List<Book> selectAll(){
           List<Book> bookList = new ArrayList<>();

           Book book1 = new Book();
           book1.setId(1);
           book1.setType("计算机类型");
           book1.setBookName("java");
           book1.setDescription("是一本不错的书");

           Book book2 = new Book();
           book2.setId(2);
           book2.setType("机器人类型");
           book2.setBookName("python");
           book2.setDescription("一个机器人类型");

           bookList.add(book1);
           bookList.add(book2);
           return bookList;
      }
    }

    2.userController.java

    package com.yang.controller;

    import com.yang.domain.User;
    import org.springframework.web.bind.annotation.*;

    @RestController
    @RequestMapping("/users")
    public class UserController {

       @GetMapping("/{id}")
       public String findById(@PathVariable Integer id){
           System.out.println("GET..."+id);
           return "{'dream' :'hello' }";
      }
       @PostMapping
       public String add(@RequestBody User user){
           System.out.println("POST..."+user);
           return "{'dream' :'hello' }";
      }
       @PutMapping
       public String update(@RequestBody User user){
           System.out.println("PUT..."+user);
           return "{'dream' :'hello' }";
      }
       @DeleteMapping("/{id}")
       public String deleteById(@PathVariable Integer id){
           System.out.println("DELETE..."+id);
           return "{'dream' :'hello' }";
      }
    }

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>

      <groupId>org.example</groupId>
      <artifactId>restful</artifactId>
      <version>1.0-SNAPSHOT</version>

      <properties>
          <maven.compiler.source>8</maven.compiler.source>
          <maven.compiler.target>8</maven.compiler.target>
      </properties>
      <packaging>war</packaging>

      <dependencies>
          <dependency>
              <groupId>javax.servlet</groupId>
              <artifactId>javax.servlet-api</artifactId>
              <version>3.1.0</version>
              //要配置成这个范围,否则会和tomcat的jar包冲突
              <scope>provided</scope>
          </dependency>
          <dependency>
              <groupId>org.springframework</groupId>
              <artifactId>spring-webmvc</artifactId>
              <version>5.2.10.RELEASE</version>
          </dependency>
          <dependency>
              <groupId>com.fasterxml.jackson.core</groupId>
              <artifactId>jackson-databind</artifactId>
              <version>2.9.0</version>
          </dependency>
      </dependencies>
      <build>
          <plugins>
              <plugin>
                  <groupId>org.apache.tomcat.maven</groupId>
                  <artifactId>tomcat7-maven-plugin</artifactId>
                  <version>2.1</version>
                  <configuration>
                      <port>8080</port>
                      <path>/</path>
                      <uriEncoding>UTF-8</uriEncoding>//过滤器配置后,还乱码,在这边加上
                  </configuration>
              </plugin>
          </plugins>
      </build>

    </project>
  •  

 

标签:return,springframework,yang,风格,Rest,org,import,com
来源: https://www.cnblogs.com/yzlworld/p/16500194.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有