@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删除。