博客
关于我
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/

    你可能感兴趣的文章
    mysql 索引类型以及创建
    查看>>
    MySQL 索引连环问题,你能答对几个?
    查看>>
    Mysql 索引问题集锦
    查看>>
    Mysql 纵表转换为横表
    查看>>
    mysql 编译安装 window篇
    查看>>
    mysql 网络目录_联机目录数据库
    查看>>
    MySQL 聚簇索引&&二级索引&&辅助索引
    查看>>
    Mysql 脏页 脏读 脏数据
    查看>>
    mysql 自增id和UUID做主键性能分析,及最优方案
    查看>>
    Mysql 自定义函数
    查看>>
    mysql 行转列 列转行
    查看>>
    Mysql 表分区
    查看>>
    mysql 表的操作
    查看>>
    mysql 视图,视图更新删除
    查看>>
    MySQL 触发器
    查看>>
    mysql 让所有IP访问数据库
    查看>>
    mysql 记录的增删改查
    查看>>
    MySQL 设置数据库的隔离级别
    查看>>
    MySQL 证明为什么用limit时,offset很大会影响性能
    查看>>
    Mysql 语句操作索引SQL语句
    查看>>