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
-
作用:全局异常处理,统一拦截控制器异常。
-