一、 内置注解@Override:标记方法是重写父类的方法。@Deprecated:标记方法或类已过时,不建议使用。@SuppressWarnings:抑制编译器警告。
二、 元注解
用于定义注解的注解,决定注解的行为。@Retention:定义注解的生命周期(编译时/运行时等)。
RetentionPolicy.SOURCE:仅保留在源代码中,编译后丢弃。
RetentionPolicy.CLASS:保留到字节码,但运行时不可用。
RetentionPolicy.RUNTIME:运行时依然可用,可通过反射读取。@Target:定义注解可用于哪些代码元素(如类、方法、字段)。
ElementType.TYPE:类、接口、枚举。
ElementType.METHOD:方法。
ElementType.FIELD:字段。@Inherited:标记注解是否能被子类继承。@Documented:标记注解是否包含在生成的文档中。
三、 Spring 框架中的注解
@Component:标记一个类为 Spring 组件,供容器管理。
@Autowired:自动注入依赖。
@RestController:标记为一个 RESTful 控制器。
@RequestMapping:映射 URL 到方法。
四、 Spring Boot 框架中的注解
1.核心注解
@SpringBootApplication
Spring Boot 应用的入口,包含三个注解的组合:@Configuration:标记类为配置类。@EnableAutoConfiguration:开启自动配置。@ComponentScan:扫描指定包及其子包下的组件。
2.组件注解
@Component:标记一个类为 Spring 管理的组件。@Service:标记一个类为服务层组件。@Repository:标记一个类为数据访问层组件,并提供持久化异常转换功能。@Controller标记一个类为控制层组件,通常用于返回视图。@RestController:@Controller和@ResponseBody的组合,用于创建 RESTful 控制器。
3.自动注入相关注解
@Autowired:自动注入依赖的 Bean,默认按类型注入。@Qualifier:配合@Autowired使用,指定注入的具体 Bean。@Primary:当存在多个候选 Bean 时,标记优先注入的 Bean。@Value:用于注入配置文件中的属性值。
4.配置相关注解
@Configuration:标记类为配置类,用于定义 Bean。@Bean:配合@Configuration使用,用于声明一个 Bean。@PropertySource:加载指定的属性配置文件。@EnableConfigurationProperties:开启对@ConfigurationProperties配置类的支持。@ConfigurationProperties将属性文件的值映射到 Java 对象中。
5.Web 开发相关注解
@RequestMapping映射 URL 到控制器类或方法。@GetMapping/@PostMapping/@PutMapping/@DeleteMapping更具体的 HTTP 方法映射注解。@PathVariable将 URL 路径中的变量绑定到方法参数。@RequestParam绑定请求参数到方法参数。@RequestBody将请求体中的 JSON 数据绑定到方法参数。@ResponseBody返回对象而不是视图。@CrossOrigin解决跨域请求问题。
6.数据访问相关注解
@Entity标记一个类为 JPA 实体。@Table用于指定实体对应的数据库表。@Id:标记字段为主键。@GeneratedValue:配合 @Id 使用,指定主键的生成策略。@Column:指定字段与数据库表列的映射关系。@Transactional:声明方法或类的事务管理。
7.异常处理相关注解
@ControllerAdvice:用于全局异常处理。@ExceptionHandler:定义特定异常的处理方法。
8.测试相关注解
@SpringBootTest:标记一个类为 Spring Boot 测试类,并加载完整的上下文。@MockBean:创建一个 Mock 对象并注入到测试上下文中。@Test:JUnit 测试方法的注解。
9.Spring Security 相关注解
@EnableWebSecurity:开启 Spring Security。@PreAuthorize:在方法执行前进行权限检查。@Secured:限制方法访问权限。@RolesAllowed:限制方法访问到特定角色。
10.缓存相关注解
@EnableCaching:启用缓存支持。@Cacheable:缓存方法的返回值。@CacheEvict:清除缓存。@CachePut:更新缓存。
11.任务调度相关注解
@EnableScheduling:开启任务调度功能。@Scheduled:定义定时任务。
12.异步任务相关注解
@EnableAsync:启用异步任务支持。@Async:将方法标记为异步执行。
