SpringBoot常用注解解析汇总
一、核心注解
-
@SpringBootApplication-
作用:标注主启动类,是 Spring Boot 的核心注解。
-
组合注解:包含
@Configuration、@EnableAutoConfiguration和@ComponentScan。 -
用途:启动 Spring Boot 应用。
-
二、依赖注入(IoC)
-
@Autowired-
作用:自动注入 Bean,按类型匹配依赖。
-
场景:用于构造方法、Setter 方法或字段。
-
-
@Component-
作用:通用组件注解,标记类为 Spring Bean。
-
衍生注解:
-
@Service:业务逻辑层。 -
@Repository:数据访问层(DAO)。 -
@Controller:Web 控制层。
-
-
-
@Configuration-
作用:声明配置类,定义 Bean。
-
配合:与
@Bean一起使用,显式配置 Bean。
-
-
@Bean-
作用:在配置类中定义 Bean,方法返回值作为 Bean 实例。
-
三、Web 控制层(MVC)
-
@RestController-
作用:组合
@Controller+@ResponseBody,直接返回 JSON/XML 数据。
-
-
@RequestMapping-
作用:映射 HTTP 请求路径,支持
method指定请求类型(如 GET/POST)。 -
简化注解:
-
@GetMapping:处理 GET 请求。 -
@PostMapping:处理 POST 请求。 -
@PutMapping、@DeleteMapping等。
-
-
-
@RequestParam-
作用:绑定 HTTP 请求参数到方法参数,支持默认值和必填校验。
-
示例:
/user?id=123→@RequestParam("id") String userId。
-
-
@PathVariable-
作用:绑定 URL 路径变量到方法参数。
-
示例:
/user/{id}→@PathVariable("id") String id。
-
-
@RequestBody-
作用:将 HTTP 请求体(如 JSON)反序列化为 Java 对象。
-
-
@ResponseBody-
作用:将方法返回值序列化为 JSON/XML 响应体。
-
-
@CrossOrigin-
作用:允许跨域请求(CORS),配置在类或方法上。
-
四、配置与属性
-
@Value-
作用:注入配置文件中的属性值。
-
示例:
@Value("${app.name}") private String appName;
-
-
@ConfigurationProperties-
作用:批量绑定配置文件属性到 Java 对象。
-
配合:
@EnableConfigurationProperties启用。
-
-
@PropertySource-
作用:加载自定义配置文件(如
config.properties)。
-
五、数据访问(JPA)
-
@Entity-
作用:标记类为 JPA 实体,对应数据库表。
-
-
@Table-
作用:指定实体对应的数据库表名(默认按类名映射)。
-
-
@Id-
作用:标注实体类的主键字段。
-
-
@GeneratedValue-
作用:定义主键生成策略(如自增、UUID 等)。
-
-
@Repository-
作用:标记数据访问层接口(如继承
JpaRepository)。
-
-
@Transactional-
作用:声明事务管理,通常用于 Service 层方法。
-
六、AOP 与 切面编程
-
@Aspect-
作用:声明切面类,用于实现日志、权限等横切关注点。
-
-
@Before/@After/@Around-
作用:定义切面通知类型(前置、后置、环绕等)。
-
示例:
@Before("execution(* com.example.service.*.*(..))")
-
七、测试
-
@SpringBootTest-
作用:标记 Spring Boot 集成测试类,加载完整应用上下文。
-
-
@Test-
作用:标记 JUnit 测试方法。
-
八、其他常用注解
-
@Valid-
作用:触发参数校验(需配合
javax.validation注解如@NotNull)。
-
-
@Scheduled-
作用:声明定时任务方法(需在启动类加
@EnableScheduling)。
-
-
@ConditionalOnProperty-
作用:根据配置条件决定是否创建 Bean(条件化配置)。
-
-
@ControllerAdvice-
作用:全局异常处理,统一拦截控制器异常。
-
