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

    你可能感兴趣的文章
    MySQL8修改密码的方法
    查看>>
    Mysql8在Centos上安装后忘记root密码如何重新设置
    查看>>
    Mysql8在Windows上离线安装时忘记root密码
    查看>>
    MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
    查看>>
    mysql8的安装与卸载
    查看>>
    MySQL8,体验不一样的安装方式!
    查看>>
    MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
    查看>>
    Mysql: 对换(替换)两条记录的同一个字段值
    查看>>
    mysql:Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘解决方法
    查看>>
    MYSQL:基础——3N范式的表结构设计
    查看>>
    MYSQL:基础——触发器
    查看>>
    Mysql:连接报错“closing inbound before receiving peer‘s close_notify”
    查看>>
    mysqlbinlog报错unknown variable ‘default-character-set=utf8mb4‘
    查看>>
    mysqldump 参数--lock-tables浅析
    查看>>
    mysqldump 导出中文乱码
    查看>>
    mysqldump 导出数据库中每张表的前n条
    查看>>
    mysqldump: Got error: 1044: Access denied for user ‘xx’@’xx’ to database ‘xx’ when using LOCK TABLES
    查看>>
    Mysqldump参数大全(参数来源于mysql5.5.19源码)
    查看>>
    mysqldump备份时忽略某些表
    查看>>
    mysqldump实现数据备份及灾难恢复
    查看>>