@SpringBootApplication:标记主类,组合了 @Configuration、@EnableAutoConfiguration、@ComponentScan@Configuration:标记配置类,替代 XML 配置文件@EnableAutoConfiguration:启用自动配置机制@ComponentScan:指定扫描组件的包路径@Component:通用组件注解,标记类为 Spring 管理的 Bean@Bean:在配置类中定义 Bean@Lazy:延迟初始化 Bean(默认单例在启动时初始化)@Controller:标记 MVC 控制器类@RestController:组合 @Controller 和 @ResponseBody,返回 JSON/XML@Service:标记业务逻辑层服务类@Repository:标记数据访问层(DAO)类,自动处理数据库异常@Autowired:自动注入依赖(按类型匹配)@Qualifier:与 @Autowired 配合,按名称注入@Resource:JDK 注解,按名称或类型注入@Value:注入配置文件中的属性值(如 @Value("${app.name}"))@Primary:当存在多个同类型 Bean 时,指定优先注入的 Bean@RequestMapping:映射 HTTP 请求(URL、方法、参数等)@GetMapping:处理 HTTP GET 请求(简化 @RequestMapping(method = RequestMethod.GET))@PostMapping:处理 HTTP POST 请求@PutMapping:处理 HTTP PUT 请求@DeleteMapping:处理 HTTP DELETE 请求@PatchMapping:处理 HTTP PATCH 请求@ResponseBody:将方法返回值直接作为响应体(非视图)@RequestBody:接收 HTTP 请求体(如 JSON 数据)@PathVariable:获取 URL 路径中的参数(如 /user/{id} 中的 id)@RequestParam:获取请求参数(如 ?name=xxx)@RequestHeader:获取请求头信息@CookieValue:获取 Cookie 中的值@CrossOrigin:允许跨域请求@ModelAttribute:绑定请求参数到模型对象@SessionAttributes:将模型数据存储到会话中@ResponseStatus:指定响应的 HTTP 状态码@ExceptionHandler:处理控制器中的异常@ControllerAdvice:全局异常处理、全局数据绑定等@ConfigurationProperties:将配置文件属性绑定到类(配合 @Component 或 @EnableConfigurationProperties)@EnableConfigurationProperties:启用指定类的配置属性绑定@PropertySource:加载自定义配置文件(如 @PropertySource("classpath:custom.properties"))@Profile:指定 Bean 在特定环境下生效(如 @Profile("dev"))@Conditional:基于条件判断是否创建 Bean(派生注解如下)@ConditionalOnBean:当存在指定 Bean 时生效@ConditionalOnMissingBean:当不存在指定 Bean 时生效@ConditionalOnClass:当类路径存在指定类时生效@ConditionalOnMissingClass:当类路径不存在指定类时生效@ConditionalOnProperty:当配置属性满足条件时生效@Aspect:标记类为切面类@Pointcut:定义切入点(如 execution(* com.example.service.*.*(..)))@Before:前置通知(目标方法执行前)@After:后置通知(目标方法执行后,无论是否异常)@AfterReturning:返回后通知(目标方法正常返回后)@AfterThrowing:异常通知(目标方法抛出异常后)@Around:环绕通知(覆盖目标方法执行,需手动调用 proceed())@Transactional:标记方法或类需要事务管理(可指定传播行为、隔离级别等)@EnableTransactionManagement:启用事务管理(Spring Boot 自动配置,通常无需显式添加)@Entity:标记 JPA 实体类(对应数据库表)@Table:指定实体类对应的数据库表名@Id:标记实体类的主键@GeneratedValue:指定主键生成策略(如自增)@Column:指定实体属性对应的数据库列名@Transient:标记属性不映射到数据库列@Repository:数据访问层注解(见分层注解)@Query:JPA 中自定义 SQL 或 JPQL 查询@Param:在 SQL 语句中绑定参数(如 @Query("SELECT u FROM User u WHERE u.name = :name"))@Mapper:MyBatis 映射器接口注解@Insert、@Update、@Delete、@Select:MyBatis 注解式 SQL@EnableCaching:启用缓存功能@Cacheable:标记方法结果可缓存(如查询结果)@CachePut:更新缓存(执行方法后更新缓存)@CacheEvict:清除缓存(如删除数据后)@Caching:组合多个缓存注解@EnableAsync:启用异步方法支持@Async:标记方法为异步执行@EnableScheduling:启用定时任务支持@Scheduled:标记定时任务方法(如 @Scheduled(cron = "0 0 12 * * ?"))@EnableWebSecurity:启用 Web 安全配置@PreAuthorize:方法执行前验证权限(如 @PreAuthorize("hasRole('ADMIN')"))@PostAuthorize:方法执行后验证权限@Secured:指定方法所需的角色(如 @Secured("ROLE_ADMIN"))@SpringBootTest:Spring Boot 测试主注解,加载完整上下文@Test:JUnit 测试方法注解@MockBean:替换容器中的 Bean 为 Mock 对象@AutoConfigureMockMvc:自动配置 MockMvc(用于测试控制器)@DataJpaTest:测试 JPA 相关组件(只加载必要的 Bean)@WebMvcTest:测试 MVC 控制器(只加载 Web 层 Bean)@Order:指定 Bean 加载或执行的顺序(值越小越优先)@Scope:指定 Bean 的作用域(如 singleton、prototype、request、session)@Deprecated:标记方法或类为过时@NonNull:标记参数或返回值不能为 null(Lombok 注解)@NotNull:验证参数不能为 null(javax.validation 注解)@Size:验证字符串或集合的长度范围(如 @Size(min=2, max=10))@Email:验证字符串为合法邮箱格式@Valid:触发参数的校验(配合 javax.validation 注解)@Validated:开启类级别的参数校验@EventListener:标记方法为事件监听器@EnableFeignClients:启用 Feign 客户端(服务调用)@FeignClient:定义 Feign 客户端接口@LoadBalanced:标记 RestTemplate 启用负载均衡(配合 Spring Cloud)@RegisterReflectionForBinding:注册类以支持 JSON 反射绑定@Slf4j:Lombok 注解,自动生成日志对象@RequiredArgsConstructor:Lombok 注解,生成包含 final 字段的构造函数@NoArgsConstructor、@AllArgsConstructor:Lombok 注解,生成无参 / 全参构造函数这些注解覆盖了 Spring Boot 开发的核心场景,实际开发中可根据需求灵活组合使用。其中,@SpringBootApplication、@RestController、@Service、@Autowired、@RequestMapping等是最基础且高频使用的注解。
本文系作者在时代Java发表,未经许可,不得转载。
如有侵权,请联系nowjava@qq.com删除。