博客
关于我
springboot常用注解
阅读量:666 次
发布时间:2019-03-15

本文共 2238 字,大约阅读时间需要 7 分钟。

Spring Boot注解与常用注解解析

1. @SpringBootApplication的核心注解解析

@SpringBootApplication注解是Spring Boot应用开发的标准注解,主要目的是快速初始化Spring Boot应用。其核心三个注解包括:

  • @EnableAutoConfiguration

    • 作用:启用默认的auto-configuration,这意味着Spring Boot会自动配置约定俗成的组件,如Spring MVC、Spring Boot自身等。
    • 作用域:应用级别,影响整个应用。
  • @SpringBootApplication

    • 作用:标注当前类为Spring Boot的主启动类,负责加载程序和依赖。
    • 作用域:应用级别,标注类为启动类。
  • @ComponentScan

    • 作用:扫描包中的组件进行注册,@Component标记的类会被Spring容器识别。
  • :默认情况下,@SpringBootApplication注解会自动包含@EnableAutoConfiguration,因此通常不需要手动添加@EnableAutoConfiguration注解。


    2. 常用实体类注解解析

    实体类注解主要用于定义数据库表对应的类,下面是几个常见注解及其作用:

    核心注解

  • @Entity(name="bean")

    • 作用:标注此类是一个实体类,并指定与数据库表的映射名称,默认使用类名。
    • 作用域:类级别。
  • @Table(name="table_name")

    • 作用:当实体类与对应表名不一致时,手动指定表名。
    • 作用域:类级别。
  • 主键注解

  • @Id

    • 作用:标注主键属性。
    • 作用域:属性级别。
  • @GeneratedValue

    • 作用:为实体生成唯一标识符(如Hibernate的UUID或JDBC的序列号)。
    • 作用域:属性级别。

  • 3. 控制层注解解析

    控制层注解用于定义Spring Boot应用的后端控制逻辑,以处理HTTP请求。常用注解包括:

    核心注解

  • @RestController

    • 作用:标注控制器类,返回的数据以JSON、XML等格式发送。
    • 作用域:类级别。
  • @RequestMapping(method = RequestMethod.GET/POST/...)

    • 作用:定义应用级别的URL映射,可指定请求方法。
    • 作用域:方法级别。
  • HTTP方法注解

  • @GetMapping

    • 作用:简化@RequestMapping(method = RequestMethod.GET)的书写。
    • 作用域:方法级别。
  • @PostMapping

    • 作用:简化@RequestMapping(method = RequestMethod.POST)的书写。
    • 作用域:方法级别。
  • @RequestMapping

    • 作用:自定义URL映射,支持多种请求方法。
    • 作用域:方法级别。

  • 4. 常用注解解析

    在Spring Boot中,还有一些常用的注解,主要用于处理HTTP请求参数和数据格式。

  • @PathVariable
    • 作用:将URL中的占位符参数绑定到方法参数中,例如:@PathVariable("id") Integer userId
    • 示例
      @GetMapping("/user/{id}")public String getUser(@PathVariable("id") Integer userId) {    // 方法逻辑...}```
  • @RequestBody
    • 作用:将HTTP请求正文中的数据直接绑定到实体类中,适用于JSON格式请求。
    • 示例
      @PostMapping("/user")public User saveUser(@RequestBody User user) {    // 方法逻辑...}```
  • @RequestParam
    • 作用:将HTTP请求查询参数绑定到方法参数中,默认为application/x-www-form-urlencoded格式。
    • 示例
      @PostMapping("/users")public List
      getUsers(@RequestParam(name = "name") String name) { // 方法逻辑...}```

  • 5. 注解关系与使用场景

    • @RestController与@Controller

      • @RestController:更专注于返回JSON、XML等数据类型,建议用于API开发。
      • @Controller:用于传统的MVC模式,适用于需要跳转前端视图的场景。
    • @Target与@Enable

      • @Target:用于定义自定义注解的作用范围(如方法、类等)。
      • @Enable:常用于激活生 Ebook sass注解,例如@EnableWebMvc

    6. 自定义注解开发

    有时候需要自定义注解,可以通过@Target@Inherited等注解实现:

    • @Target(ElementType.METHOD)

      • 例:
        @Target(ElementType.METHOD)@Inherited(ElementType.METHOD)public @interface MyAnnotation {    String value();}
      • 自定义注解可以作用于方法。
    • @Inherited

      • 用于继承自定义注解,确保子类可以读取父类注解信息。

    转载地址:http://yuwqz.baihongyu.com/

    你可能感兴趣的文章
    nginx:Error ./configure: error: the HTTP rewrite module requires the PCRE library
    查看>>
    Nginx、HAProxy、LVS
    查看>>
    Nginx下配置codeigniter框架方法
    查看>>
    Nginx中使用expires指令实现配置浏览器缓存
    查看>>
    Nginx之二:nginx.conf简单配置(参数详解)
    查看>>
    Nginx代理websocket配置(解决websocket异常断开连接tcp连接不断问题)
    查看>>
    Nginx代理初探
    查看>>
    nginx代理地图服务--离线部署地图服务(地图数据篇.4)
    查看>>
    Nginx代理外网映射
    查看>>
    Nginx代理模式下 log-format 获取客户端真实IP
    查看>>
    Nginx代理解决跨域问题(导致图片只能预览不能下载)
    查看>>
    Nginx代理访问提示ERR_CONTENT_LENGTH_MISMATCH
    查看>>
    Nginx代理配置详解
    查看>>
    Nginx代理静态资源(gis瓦片图片)实现非固定ip的url适配网络环境映射ip下的资源请求解决方案
    查看>>
    Nginx代理静态资源(gis瓦片图片)实现非固定ip的url适配网络环境映射ip下的资源请求解决方案
    查看>>
    Nginx入门教程-简介、安装、反向代理、负载均衡、动静分离使用实例
    查看>>
    nginx反向代理
    查看>>
    Nginx反向代理
    查看>>
    nginx反向代理、文件批量改名及统计ip访问量等精髓总结
    查看>>
    Nginx反向代理与正向代理配置
    查看>>