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

Spring Boot 常用注解及其功能详解

以下是 Spring Boot 常用注解及其功能详解,分为几大类(核心注解、依赖注入、Web开发、配置相关、数据访问、安全等),适合日常开发参考。


🧱 一、核心注解

注解功能
@SpringBootApplication@Configuration@EnableAutoConfiguration@ComponentScan 的组合注解,是 Spring Boot 的入口
@ComponentScan自动扫描并注册 @Component@Service@Repository@Controller 标注的类到 Spring 容器中
@EnableAutoConfiguration启用 Spring Boot 的自动配置机制,自动根据依赖自动配置 Bean
@Configuration表示当前类是一个配置类,等同于传统的 applicationContext.xml

💉 二、依赖注入相关注解

注解功能
@Component标注一个普通组件类
@Service标注业务逻辑层组件
@Repository标注 DAO 层组件,并支持 Spring 的异常转换
@Controller标注控制器组件(配合 MVC)
@RestController@Controller + @ResponseBody,返回 JSON 数据用
@Autowired自动注入 Bean(按类型注入)
@Qualifier配合 @Autowired 使用,按名称注入 Bean
@ResourceJSR-250 标准注解,默认按名称注入
@Value注入配置文件中的值,例如 @Value("${server.port}")
@PostConstruct方法在 bean 初始化完成后执行(初始化方法)
@PreDestroy方法在 bean 销毁前执行(销毁方法)

🌐 三、Web 相关注解(Spring MVC)

注解功能
@RequestMapping通用的请求映射,可以用于类或方法上
@GetMapping@PostMapping@PutMapping@DeleteMapping更简洁的请求方式映射
@PathVariable获取 URL 路径中的变量
@RequestParam获取请求参数,如 ?id=1
@RequestBody将请求体 JSON 转换为 Java 对象
@ResponseBody将返回值转为 JSON 响应(用在 @Controller 方法上)
@CrossOrigin处理跨域请求
@ExceptionHandler处理控制器中的异常
@ControllerAdvice全局异常处理、数据绑定、全局数据等
@ModelAttribute绑定请求参数到模型对象上,或暴露数据到前端页面

🛠 四、配置与属性绑定

注解功能
@ConfigurationProperties将配置文件中的值绑定到 Bean 上,适合批量注入
@PropertySource指定额外的 properties 配置文件
@EnableConfigurationProperties开启 @ConfigurationProperties 支持
@Profile指定该类或 Bean 仅在某个环境 Profile 激活时加载(如 dev/prod)

🗃 五、数据访问相关(Spring Data / JPA)

注解功能
@Entity标注 JPA 实体类,对应数据库表
@Table指定实体类映射的表名
@Id指定主键字段
@GeneratedValue设置主键生成策略
@Repository持久层组件,支持异常转换
@Transactional表示方法或类为事务处理方法
@Modifying用于执行更新、删除操作的自定义 JPQL 语句

🔒 六、安全相关(Spring Security)

注解功能
@EnableWebSecurity启用 Web 安全配置
@Secured基于角色的访问控制
@PreAuthorize / @PostAuthorize方法前/后进行权限校验
@RolesAllowed指定允许访问的角色(JSR-250)

🧪 七、测试相关

注解功能
@SpringBootTest启动整个 SpringBoot 容器进行集成测试
@WebMvcTest只测试 Web 层(Controller)
@DataJpaTest测试 JPA 相关功能
@MockBean向 Spring 容器中添加一个模拟 Bean
@BeforeEach / @AfterEach测试前/后运行
@Test标注测试方法(JUnit)

🧠 小结

核心:@SpringBootApplication = @ComponentScan + @EnableAutoConfiguration + @Configuration
依赖注入:@Autowired、@Component、@Service、@Repository
Web控制:@RestController、@RequestMapping、@GetMapping、@RequestParam、@PathVariable
配置绑定:@ConfigurationProperties、@Value
数据访问:@Entity、@Id、@Repository、@Transactional
安全控制:@Secured、@PreAuthorize
测试:@SpringBootTest、@MockBean

http://www.dtcms.com/a/321800.html

相关文章:

  • Numpy科学计算与数据分析:Numpy高效数据处理与优化
  • 第七章:数据持久化 —— `chrome.storage` 的记忆魔法
  • bytearray和bytes
  • 解决flex元素内部文本溢出的问题min-width: 0
  • Pytest项目_day08(setup、teardown前置后置操作)
  • 树和二叉树和算法复杂度
  • 这款MEMS组合导航系统如何实现高性价比?
  • SVM实战:从线性可分到高维映射再到实战演练
  • 智能对讲机是什么?原理、优势、应用场景、发展趋势详解
  • 前端老项目依赖安全漏洞解决
  • 【LLM实战|langchain、qwen_agent】RAG高级
  • 888. 公平的糖果交换
  • YOLO-Count:用于文本到图像生成的可微分目标计数
  • 智慧公厕自动清洁空气环境,节省门店运营成本
  • 什么是SSL证书颁发机构?
  • 北斗变形监测技术应用与案例分析
  • SVM算法实战应用
  • 【开源工具】网络交换机批量配置生成工具开发全解:从原理到实战(附完整Python源码)
  • C++ 标准库容器常用成员函数
  • 04--模板初阶(了解)
  • 【Linux】从零开始:RPM 打包全流程实战万字指南(含目录结构、spec 编写、分步调试)
  • 【探展WAIC】从“眼见为虚”到“AI识真”:如何用大模型筑造多模态鉴伪盾牌
  • 惯量时间常数 H 与转动惯量 J 的关系解析
  • uniapp开发微信小程序遇到富文本内容大小变形问题v-html
  • 【谷歌 SEO】排查页面未索引问题:原因与解决方案
  • 页面tkinter
  • CALL与 RET指令及C#抽象函数和虚函数执行过程解析
  • 锂电池保护板测试仪:守护电池安全的核心工具|深圳鑫达能
  • 深度学习里一些常用的指标(备份)
  • 常见数据结构介绍(顺序表,单链表,双链表,单向循环链表,双向循环链表、内核链表、栈、队列、二叉树)