zoukankan      html  css  js  c++  java
  • SpringBoot常用注解的介绍及使用

    常用注解

    @springBootApplication 系统启动类注解,此注解是个组合注解,包括了:@SpringBootConfiguration,@EnableAutoConfiguration,@ConmentScan三个注解的组合。

    @SpringBootConfiguration 继承至@Configuration,对于熟悉spring的开发者而言,此标注当前类是配置类,并会将当前类内声明的一个或多个以@Bean注解标记的方法的实例纳入到srping容器中,并且实例名就是方法名。

    @EnableAutoConfiguration 此注解就是SpringBoot 能够自动进行配置的魔法所在,通过此注解能够将所有符合自动条件的Bean的定义加载到spring容器中。

    比如根据spring-boot-starter-web ,来判断你的项目是否需要添加了webmvc和tomcat,就会自动的帮你配置web项目中所需要的默认配置。

    @ComponentScan 这个熟悉spring的开发者也应该熟悉,会扫描当前包及其子包下被@Component,@Controller,@Service,@Repository等注解标记的类并纳入到spring容器中进行管理。

    @Controller 和 @RestController

    @RestController 是Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式。而@Controller是用来创建处理http请求的对象,一般结合@RequestMapping使用。

    @RequestMapping

    一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径

    常用属性:

    value, method;
    value: 指定请求的实际地址,指定的地址可以是URI Template 模式;
    method: 指定请求的method类型, GET、POST、PUT、DELETE等;

    consumes,produces;
    consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
    produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;

    params,headers;
    params: 指定request中必须包含某些参数值是,才让该方法处理。
    headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。

    常用的基本上就value和method了。其简化注解有

    @GetMapping 等同于 @RequestMapping(method = RequestMethod.GET)
    @PostMapping 等同于 @RequestMapping(method = RequestMethod.POST)
    @PutMapping 等同于 @RequestMapping(method = RequestMethod.PUT)
    @DeleteMapping 等同于 @RequestMapping(method = RequestMethod.DELETE)
    @PatchMapping 等同于 @RequestMapping(method = RequestMethod.PATCH)

    @RequestBody和@ResponseBody

    @RequestBody注解允许request的参数在reqeust体中,常常结合前端POST请求,进行前后端交互。

    @ResponseBody注解支持将的参数在reqeust体中,通常返回json格式给前端。

    @PathVariable、@RequestParam、@RequestAttribute

    @PathVariable用来接收参数,如/path/001,可接收001作为参数

    @RequestParam 用来接收URL中的参数,如/param?id=001,可接收001作为参数

    @RequestAttribute用于访问由过滤器或拦截器创建的、预先存在的请求属性,效果等同与request.getAttrbute().

    @Component、@Service、@Repository

    这三者都是申明一个单例的bean类并纳入spring容器中,后两者其实都是继承于@Component

    @Component 最普通的组件,可以被注入到spring容器进行管理

    @Repository 作用于持久层

    @Service 作用于业务逻辑层

    通常一些类无法确定是使用@Service还是@Component时,注解使用@Component,比如redis的配置类等

    @ModelAttribute

    主要是绑定请求参数到指定对象上。此注解可被用于方法、参数上。

    运用在参数上,会将客户端传递过来的参数按名称注入到指定对象中,并且会将这个对象自动加入ModelMap中,便于View层使用;

    运用在方法上,会在每一个@RequestMapping标注的方法前执行,如果有返回值,则自动将该返回值加入到ModelMap中;

  • 相关阅读:
    洛谷 P2108 学英语
    洛谷 P1010 幂次方
    洛谷 P1101 单词方阵
    洛谷 P1217 [USACO1.5]回文质数 Prime Palindromes
    洛谷 P1553 数字反转(升级版)
    hdu_1348_Wall(凸包)
    hdu_1392_Surround the Trees(凸包)
    hdu_1115_Lifting the Stone(求多边形重心)
    Codeforces Round #354 (Div. 2)_Vasya and String(尺取法)
    hdu_1558_Segment set(并查集+计算几何)
  • 原文地址:https://www.cnblogs.com/wangzh1guo/p/9476464.html
Copyright © 2011-2022 走看看