当前位置: 首页 > java >正文

SpringBoot相关注解

在 Spring Boot 开发中,注解是简化配置、实现特定功能的核心方式。以下是一些常见注解及其作用:

  1. @SpringBootApplication

    • 作用:标识 Spring Boot 应用的主类,是一个组合注解,包含 @Configuration、@EnableAutoConfiguration 和 @ComponentScan
    • 位置:通常用在项目的主启动类上
  2. @Controller

    • 作用:标识一个类为 Spring MVC 控制器,用于处理 HTTP 请求
    • 特点:返回值通常是视图名称,配合 @ResponseBody 可返回数据
  3. @RestController

    • 作用:是 @Controller 和 @ResponseBody 的组合注解
    • 特点:默认所有方法都返回数据(如 JSON/XML),而非视图
  4. @RequestMapping

    • 作用:映射 HTTP 请求到控制器方法
    • 可指定 value(路径)、method(请求方法)、params 等属性
  5. @GetMapping/@PostMapping/@PutMapping/@DeleteMapping

    • 作用:分别对应 HTTP 的 GET、POST、PUT、DELETE 请求的快捷注解
    • 是 @RequestMapping 的简化形式,如 @GetMapping 等价于 @RequestMapping (method = RequestMethod.GET)
  6. @Autowired

    • 作用:自动注入依赖对象
    • 可用于构造方法、字段、setter 方法上,默认按类型注入
  7. @Service

    • 作用:标识业务逻辑层的组件
    • Spring 会自动扫描并管理这些 Bean
  8. @Repository

    • 作用:标识数据访问层(DAO)的组件
    • 还能将数据库操作的异常转换为 Spring 的统一数据访问异常
  9. @Component

    • 作用:通用的组件标识注解
    • 当某个类不属于 @Controller、@Service、@Repository 时使用
  10. @Configuration

    • 作用:标识一个类为配置类,替代传统的 XML 配置
    • 类中的 @Bean 方法会生成 Bean 并交给 Spring 容器管理
  11. @Bean

    • 作用:在 @Configuration 类中使用,用于定义一个 Bean
    • 方法的返回值将作为 Bean 实例,方法名默认作为 Bean 的名称
  12. @Value

    • 作用:注入配置文件中的属性值
    • 例如:@Value ("${app.name}") private String appName;
  13. @ConfigurationProperties

    • 作用:将配置文件中的属性批量绑定到 Java 对象
    • 通常配合 @Component 使用,实现配置的集中管理
  14. @PathVariable

    • 作用:获取 URL 路径中的参数
    • 例如:@GetMapping ("/user/{id}") 中获取 id 的值
  15. @RequestParam

    • 作用:获取请求参数的值
    • 可用于处理 URL 查询参数或表单提交的参数
  16. @ResponseBody

    • 作用:将方法返回值直接作为响应体返回,而非视图
    • 通常用于返回 JSON 或 XML 格式的数据
  17. @RequestBody

    • 作用:将 HTTP 请求体中的数据绑定到方法参数
    • 常用于接收 JSON 格式的请求数据
  18. @Transactional

    • 作用:声明事务管理
    • 可用于类或方法上,指定事务的传播行为、隔离级别等
http://www.xdnf.cn/news/16956.html

相关文章:

  • #Linux内存管理#缺页中断处理的核心函数是do_page_fault()的工作原理
  • Vulnhub ELECTRICAL靶机复现(附提权)
  • RPG增容2.尝试使用MMC根据游戏难度自定义更改怪物属性(三)
  • (LeetCode 面试经典 150 题) 138. 随机链表的复制 (哈希表)
  • Kotlin单例模式懒汉模式:LazyThreadSafetyMode.SYNCHRONIZED(2)
  • 深度学习(鱼书)day09--与学习相关的技巧(前三节)
  • P10816 [EC Final 2020] Namomo Subsequence|普及+
  • 机器学习实战:KNN算法全解析 - 从原理到创新应用
  • 【LeetCode 热题 100】(三)滑动窗口
  • Windows下定位Mingw编译的Qt程序崩溃堆栈
  • Python编程基础与实践:Python模块与包入门实践
  • 滚珠花键在汽车制造中有哪些高要求?
  • 什么叫湖仓一体
  • 存储过程的介绍、基本语法、delimiter的使用
  • Effective C++ 条款18:让接口容易被正确使用,不易被误用
  • Qwen3 Embedding:新一代文本表征与排序模型
  • [硬件电路-123]:模拟电路 - 信号处理电路 - 常见的高速运放芯片、典型电路、电路实施注意事项
  • 高效游戏状态管理:使用双模式位运算与数学运算
  • 网络基础实操篇-05-路由基础-最佳实践
  • WinForm之NumericUpDown控件
  • linux ssh公钥移除办法
  • Day 29: 复习
  • 保证金率(Margin Ratio)
  • Mybatis学习之获取参数值(四)
  • 力扣面试150题--回文数
  • golang——viper库学习记录
  • AWS上部署Spring Boot应用的完整指南
  • 音视频学习(四十八):PCM和WAV
  • Linux网络-------4.传输层协议UDP/TCP-----原理
  • 深入 Go 底层原理(五):内存分配机制