SpringBoot常用注解与注意事项

简介: SpringBoot常用注解与注意事项

Spring Boot 是一个用于快速开发、运行和管理 Spring 应用程序的框架。它大量使用了注解(Annotations)来简化配置和开发流程。

以下是一些 Spring Boot 中常用的注解及其注意事项:

1.常用注解

  1. @SpringBootApplication
  • 这是一个组合注解,用于启动 Spring Boot 应用。它包括 @Configuration@EnableAutoConfiguration@ComponentScan
  • 注意:它通常放在主类上。

@Configuration

  • @Configuration 注解表示一个类作为 Spring 的配置类,它的作用等同于 Spring 的 XML 配置文件。在这个类中,你可以通过声明 @Bean 注解的方法来定义 Bean。
  • @Configuration 标记的类会被 Spring 容器处理,以检测类内部的 @Bean 方法。
  • 这个注解的作用是简化 Spring 的 Java 配置,使得配置更加直观和类型安全。

@EnableAutoConfiguration

  • @EnableAutoConfiguration 注解告诉 Spring Boot 根据添加的 jar 依赖自动配置你的 Spring 应用。例如,如果类路径下有 Spring MVC 的依赖,SpringBoot 会自动配置你的应用为一个 Spring MVC 应用。
  • 这个注解会自动载入应用程序所需的所有 Bean,这依赖于 Spring Boot 在类路径中的查找。
  • 如果你想要关闭特定的自动配置,可以使用 @EnableAutoConfiguration(exclude={Class1.class, Class2.class}) 来排除它们。
  • @ComponentScan
  • @ComponentScan 注解用于自动检测和注册 Spring 组件(如 @Component@Service@Repository@Controller 等)。
  • 这个注解会扫描指定包路径下的类,并检测这些类上是否有 Spring 的组件注解,如果有,则将其注册为 Spring 容器中的 Bean。
  • 你可以通过 basePackages 属性或者 basePackageClasses 属性来指定 @ComponentScan 的扫描范围。
  1. @Component, @Service, @Repository
  • 用于标记类作为 Spring 的组件,@Service@Repository@Component 的特化。
  • 注意:这些类会被自动扫描并注册为 Spring 应用上下文中的 Bean。
  1. @Autowired
  • 用于自动装配依赖。
  • 注意:过度使用可能会导致依赖关系不明确。

@RestController@Controller

  • @RestController@Controller@ResponseBody 的组合,表示该类的所有方法返回值直接作为 HTTP 响应体。
  • 注意:@Controller 需要配合 @ResponseBody 或返回 View 对象。
  1. @RequestMapping@GetMapping, @PostMapping
  • 用于映射 HTTP 请求到控制器方法。
  • 注意:@GetMapping@PostMapping@RequestMapping 的特化。
  1. @PathVariable, @RequestParam, @RequestBody
  • 用于处理请求参数。
  • 注意:@PathVariable 用于 URL 路径,@RequestParam 用于查询参数,@RequestBody 用于请求体。
  1. @Configuration
  • 用于标记配置类。
  • 注意:该类中的方法会被认为是 Bean 定义,并注册到 Spring 应用上下文中。
  1. @Bean
  • 用于在配置类中定义 Bean。
  • 注意:方法名默认为 Bean 的 ID。
  1. @Profile
  • 用于指定配置文件。
  • 注意:只有在该配置文件激活时,标记的 Bean 或配置才会生效。
  1. @EnableAutoConfiguration
  • 启用自动配置。
  • 注意:这可能会导致一些不期望的自动配置,可以通过 @SpringBootApplication(exclude={...}) 来排除。

2.注意事项

  1. 依赖注入
  • 推荐使用构造器注入,它能够保证所需的依赖不会被忽略,并且构造器注入的组件总是被完全初始化。
  1. 配置文件
  • Spring Boot 支持多种外部化配置,如 YAML、属性文件等。推荐使用 YAML 因为它的结构更加清晰。
  1. 条件注解
  • @ConditionalOnProperty@ConditionalOnClass 等,用于在满足特定条件时创建 Bean 或启用配置。
  1. 测试
  • Spring Boot 提供了 @SpringBootTest 等注解,用于测试。注意测试时模拟环境和真实环境可能会有所不同。
  1. 性能
  • 使用 @Async 标记异步方法,但要注意线程管理和异步结果的处理。
  1. 安全性
  • 使用 @EnableGlobalMethodSecurity 等注解来增强方法的安全性。
  1. 细节方面
  1. 需要添加@EnableAutoConfiguration注解或@SpringBootApplication注解启动自动配置。
  2. 需要在pom.xml文件中引入相应的依赖。
  1. 需要配置application.properties或application.yml文件来配置应用程序的属性。
  2. 需要使用@RestController注解而不是@Controller注解来标注Controller类,以便自动将方法的返回值转换为JSON数据。
  3. 需要在方法上添加@ResponseBody注解以便将方法的返回值转换为JSON数据返回给客户端。
  4. 需要在方法上添加@RequestMapping注解来标注请求的URL路径。
  1. 需要在方法的参数上添加@RequestParam、@PathVariable或@RequestBody注解来标注请求的参数。

这些只是 Spring Boot 中注解的一部分,实际使用时还需要结合具体场景和需求。

相关文章
|
2月前
|
缓存 监控 Java
SpringBoot @Scheduled 注解详解
使用`@Scheduled`注解实现方法周期性执行,支持固定间隔、延迟或Cron表达式触发,基于Spring Task,适用于日志清理、数据同步等定时任务场景。需启用`@EnableScheduling`,注意线程阻塞与分布式重复问题,推荐结合`@Async`异步处理,提升任务调度效率。
500 128
|
2月前
|
XML 安全 Java
使用 Spring 的 @Aspect 和 @Pointcut 注解简化面向方面的编程 (AOP)
面向方面编程(AOP)通过分离横切关注点,如日志、安全和事务,提升代码模块化与可维护性。Spring 提供了对 AOP 的强大支持,核心注解 `@Aspect` 和 `@Pointcut` 使得定义切面与切入点变得简洁直观。`@Aspect` 标记切面类,集中处理通用逻辑;`@Pointcut` 则通过表达式定义通知的应用位置,提高代码可读性与复用性。二者结合,使开发者能清晰划分业务逻辑与辅助功能,简化维护并提升系统灵活性。Spring AOP 借助代理机制实现运行时织入,与 Spring 容器无缝集成,支持依赖注入与声明式配置,是构建清晰、高内聚应用的理想选择。
405 0
|
2月前
|
Java 测试技术 API
将 Spring 的 @Embedded 和 @Embeddable 注解与 JPA 结合使用的指南
Spring的@Embedded和@Embeddable注解简化了JPA中复杂对象的管理,允许将对象直接嵌入实体,减少冗余表与连接操作,提升数据库设计效率。本文详解其用法、优势及适用场景。
285 126
|
3月前
|
XML JSON Java
Spring框架中常见注解的使用规则与最佳实践
本文介绍了Spring框架中常见注解的使用规则与最佳实践,重点对比了URL参数与表单参数的区别,并详细说明了@RequestParam、@PathVariable、@RequestBody等注解的应用场景。同时通过表格和案例分析,帮助开发者正确选择参数绑定方式,避免常见误区,提升代码的可读性与安全性。
|
1月前
|
XML Java 应用服务中间件
【SpringBoot(一)】Spring的认知、容器功能讲解与自动装配原理的入门,带你熟悉Springboot中基本的注解使用
SpringBoot专栏开篇第一章,讲述认识SpringBoot、Bean容器功能的讲解、自动装配原理的入门,还有其他常用的Springboot注解!如果想要了解SpringBoot,那么就进来看看吧!
343 2
|
2月前
|
XML Java 数据格式
常用SpringBoot注解汇总与用法说明
这些注解的使用和组合是Spring Boot快速开发和微服务实现的基础,通过它们,可以有效地指导Spring容器进行类发现、自动装配、配置、代理和管理等核心功能。开发者应当根据项目实际需求,运用这些注解来优化代码结构和服务逻辑。
287 12
|
2月前
|
Java 测试技术 数据库
使用Spring的@Retryable注解进行自动重试
在现代软件开发中,容错性和弹性至关重要。Spring框架提供的`@Retryable`注解为处理瞬时故障提供了一种声明式、可配置的重试机制,使开发者能够以简洁的方式增强应用的自我恢复能力。本文深入解析了`@Retryable`的使用方法及其参数配置,并结合`@Recover`实现失败回退策略,帮助构建更健壮、可靠的应用程序。
316 1
使用Spring的@Retryable注解进行自动重试
|
2月前
|
传感器 Java 数据库
探索Spring Boot的@Conditional注解的上下文配置
Spring Boot 的 `@Conditional` 注解可根据不同条件动态控制 Bean 的加载,提升应用的灵活性与可配置性。本文深入解析其用法与优势,并结合实例展示如何通过自定义条件类实现环境适配的智能配置。
171 0
探索Spring Boot的@Conditional注解的上下文配置
|
2月前
|
智能设计 Java 测试技术
Spring中最大化@Lazy注解,实现资源高效利用
本文深入探讨了 Spring 框架中的 `@Lazy` 注解,介绍了其在资源管理和性能优化中的作用。通过延迟初始化 Bean,`@Lazy` 可显著提升应用启动速度,合理利用系统资源,并增强对 Bean 生命周期的控制。文章还分析了 `@Lazy` 的工作机制、使用场景、最佳实践以及常见陷阱与解决方案,帮助开发者更高效地构建可扩展、高性能的 Spring 应用程序。
128 0
Spring中最大化@Lazy注解,实现资源高效利用