| 类别 | 注解 | 说明 |
| Bean声明 | @Component | 定义基础层的通用组件,没有明确的角色 |
| @Service | 定义业务逻辑层的服务组件 | |
| @Repository | 在数据访问层定义数据资源服务 | |
| @Controller | 在展示层使用,用于定义控制器 | |
| Bean注入 | @Autowired | 服务依赖注入,一般用于注入@Component、@Service定义的组件 |
| @Resource | 服务依赖注入,一般用于注入@Repository定义的组件 | |
| 配置类注解 | @Configuration | 声明该类为配置类,其中@Value属性可以直接和配置文件属性映射 |
| @Bean | 注解在方法上,声明该方法的返回值为一个Bean实例 | |
| @ComponentScan | 用于Component进行扫描配置 | |
| AOP注解 | @EnableAspectJAutoProxy | 开启Spring对AspectJ代理的支持 |
| @Aspect | 声明一个切面,使用@After、@Before、@Around定义通知(Advice),可直接将拦截规则(切点)作为参数 | |
| @After | 在方法执行之后执行 | |
| @Before | 在方法执行之前执行 | |
| @Around | 在方法执行之前和之后都执行 | |
| @PointCut | 声明一个切点 | |
| @Bean属性支持注解 | @Scope | 设置Spring容器Bean实例的生命周期,取值有singleton、prototype、request、session和global session |
| @PostConstruct | 声明方法在构造函数执行完之后开始执行 | |
| @Value | 为属性注入值 | |
| @PreDestory | 声明方法在Bean销毁之前执行 | |
| @PropertySource | 声明和加载配置文件 | |
| 异步操作注解 | @EnableAsync | 声明在类上,开启对异步任务的支持 |
| @Async | 声明方法是一个异步任务,Spring后台基于线程池异步执行该方法 | |
| 定时任务相关 | @EnableScheduling | 声明在调度类上,开启对任务调度的支持 |
| @Scheduled | 声明一个定时任务,包括cron、fixDelay、fixRate等参数 | |
| 开启功能支持 | @EnableAspectJAutoProxy | 开启对AspectJ自动代理支持 |
| @EnableAsync | 开启对异步方法的支持 | |
| @EnableScheduling | 开启对计划任务的支持 | |
| @EnableWebMVC | 开启对WebMVC的配置支持 | |
| @EnableConfigurationProperties | 开启对@ConfigurationProperties注解配置Bean的支持 | |
| @EnableJpaRepositories | 开启对SpringData JPA Repository的支持 | |
| @EnableTransactionManagement | 开启对事务的支持 | |
| @EnableCaching | 开启对缓存的支持 | |
| 测试相关注解 | @RunWith | 运行器,Spring中通常用于对Junit的支持 |
| @ContextConfiguration | 用于加载配置,ApplicationContext,其中classes属性用来加载配置类 | |
| SpringMVC注解 | @Controller | 声明该类为SpringMVC中的控制器 |
| @RequestMapping | 用于声明映射Web请求的地址和参数,包括访问路径和参数 | |
| @ResponseBody | 支持将返回值放在Response Body体中返回,通常用户返回JSON数据到前端 | |
| @RequestBody | 允许Request的参数在Request Body体中 | |
| @PathVariable | 用于接收基于路径的参数,通常用作RESTful接口的实现 | |
| @RestController | 组合注解,相当于@Controller和@ResponseBody的组合 | |
| @ExceptionHandler | 用于全局控制器的异常处理 | |
| @InitBinder | WebDataBinder用来自动绑定前台请求的参数到模型(Model)中 |