一、 内置注解@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
:将方法标记为异步执行。