• SpringBoot的注解:


    Custom中设置的:https://start.aliyun.com/

    @EnableAutoConfiguration //作用:开启自动配置,初始化spring环境, springmvc环境

    //实际作用:根据pom.xml文件中依赖自动判断,如在第一个环境之中引入了spring-boot-starter-web会根据

    引入的这个依赖关系构建相关环境 springmvc环境,web容器环境。

    @ComponentScan //作用:用来扫描相关注解,扫描范围 当前入口类所在包及子包。

     扫描注解访问:默认当前包以及当前包下的子包。

    要实现页面跳转的话,不能使用@RestController,要使用@Controller

    @RestController注解初步理解

    //作用:用来实例化当前对象为一个控制器对象,并将类上所有方法的返回值转为json,响应给浏览器,

    修饰范围用在类上:

    @Controller(实例化当前类为一个控制器)+@ResponseBody(用来将当前方法返回值转为json,响应给浏览器)

    一、在Spring中@RestController的作用等同于@Controller + @ResponseBody。

      所以想要理解@RestController注解就要先了解@Controller和@ResponseBody注解。

    二、@Controller注解

    在一个类上添加@Controller注解,表明了这个类是一个控制器类。但想要让这个类成为一个处理请求的处理器光有@Controller注解是不够的,他还需要进一步修炼才能成为一个处理器。

      1.在spring容器中创建该类的实例。创建实例的方式有两种:

    <bean class="test.controller.MyController" />

    上述这种方式是在spring容器中注入单个bean,当项目比较大,控制器类比较多时,用这种方式向Spring容器中注入bean非常的让人苦恼,索性有第二种方式。

    <context:component-scan base-scan="test.controller" />

     这种方式会扫描指定包中的所有类,并生成相应的bean注入到spring容器中。使用这种方式当然能够极大提高我们的开发效率,但是有时候我们不想某一类型的类注入到spring容器中。

      这个时候第二种方式也可以解决。

    <context:component-scan base-package="test" >
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
    </context:component-scan>

    2.将@Controller注解的类注入Spring容器中,只是该类成为处理器的第一步,想要修炼大成,还需要在该类中添加注解@RequestMapping。

    @RequestMapping注解是用来映射请求的,即指明处理器可以处理哪些URL请求,该注解既可以用在类上,也可以用在方法上。

       当使用@RequestMapping标记控制器类时,方法的请求地址是相对类的请求地址而言的;当没有使用@RequestMapping标记类时,方法的请求地址是绝对路径。

       @RequestMapping的地址可以是uri变量,并且通过@PathVariable注解获取作为方法的参数。也可以是通配符来筛选请求地址。具体的使用方法不是本次的重点,有兴趣的可以看

    https://www.cnblogs.com/xiepeixing/p/4243288.html

    @Controller
    @RequestMapping("/user")
      public class UserController{
            
          @RequestMapping("/users")
          public String users() {
              return "users";
          }
        
       }

    此时请求users方法的url路径就是:.../user/users。

      可以看到上面users方法的返回值是字符串类型的,这个就是处理器在处理完任务后将要跳转的页面。如果想要方法直接返回结果,而不是跳转页面,这就要用到@ResponseBody注解了。

    三、@ResponseBody注解

      @ResponseBody表示方法的返回值直接以指定的格式写入Http response body中,而不是解析为跳转路径。

      格式的转换是通过HttpMessageConverter中的方法实现的,因为它是一个接口,因此由其实现类完成转换。

    如果要求方法返回的是json格式数据,而不是跳转页面,可以直接在类上标注@RestController,而不用在每个方法中标注@ResponseBody,简化了开发过程。

     @RestController:

    //作用:用来加入访问路径,修饰范围:类(加入命名空间) 方法上(指定具体路径)

    @GetMapping://作用:限定请求方式只能是GET,并指定路径,修饰范围:方法上

    @PostMappping @DeleteMapping @PutMapping

    main方法的作用:

    //通过标准java入口方式委托给SpringApplication,并告知当前springboot主应用类是谁,从而启动springboot中tomcat容器,

    args作用:可以在启动时指定外部参数。

  • 相关阅读:
    win、mac 设置 php上传文件大小限制
    PHP. 02®. Ajax异步处理、常见的响应状态、XMLHttpRequest对象及API、ajax的get/post方法、
    PHP-02.文件上传、php保存/转移上传的文件、常见的网络传输协议、请求报文及属性、响应报文及属性
    PHP. 01. C/S架构、B/S架构、服务器类型、服务器软件、HTTP协议/服务器、数据库、服务器web开发、PHP简介/常见语法、PHPheader()、 PHP_POST/GET数据获取和错误处理
    MAMP 访问时显示文件列表
    HTML5 02. 多媒体控件、拖拽事件、历史记录、web存储、应用程序缓存、地理定位、网络状态
    CSS3 04. 伸缩布局、设置主轴,侧轴方向、主/侧轴对齐方式、 伸缩比例、元素换行、换行控制、覆盖父元素的align-items;控制子元素顺序、web字体、突变字体
    Linux网络设备驱动之数据发送流程(五)
    Linux网络设备驱动之网络设备的打开与释放(四)
    Linux网络设备驱动之网络设备的初始化(三)
  • 原文地址:https://www.cnblogs.com/yiweiyihang/p/12899780.html
Copyright © 2020-2023  润新知