注解分类
1、声明Bean的注解
@Component:组件,没有明确的角色。
@Service:在业务逻辑层使用。
@Repository :在数据访问层使用。
@Controller:在展现层使用,控制层的声明。
@RestController :@Controller和@ResponseBody组合。
2、注入Bean的注解
@Autowired:Spring自带的注解,用来自动装配Bean。
@Resource:Java自带的注解,用来自动装配Bean。
区别:@Resource和@Autowired的区别:
都是用来自动装配的,都可以放在属性字段上
@Autowired通过byType的方式实现,而且必须要求这个对象存在!【常用】
@Resource默认通过byName的方式实现,如果找不到名字,则通过byType实现!如果两个都找不到的情况下,就报错!【常用】
3、 配置类相关注解
@Configuration :声明当前类为配置类。
@Bean:注解在方法上,声明当前方法的返回值为一个Bean,替代xml中的方式(方法上)。
@ComponentScan :声明扫描注解的范围 。
4、 AOP相关注解
@Aspect:声明一个切面(类上),可直接将拦截规则(切点)作为参数。
@After :在方法执行之后执行(方法上)。
@Before :在方法执行之前执行(方法上)。
@Around :在方法执行之前与之后执行(方法上)。
@PointCut :声明切点在Java配置类中使用@EnableAspectJAutoProxy注解,开启Spring对AspectJ代理的支持。
5、 注入属性注解
@Value:为属性注入值。
6、 异步相关注解
@EnableAsync:配置类中,通过此注解开启对异步任务的支持。
@Async:在实际执行的 bean 方法使用该注解来申明其是一个异步任务(方法上或类上所有的方法都将异步,需要@EnableAsync 开启异步任务)。
7、 定时任务相关注解
@EnableScheduling :在配置类上使用,开启计划任务的支持(类上)。
@Scheduled :来申明这是一个任务。
8、 开关相关注解
这些注解主要用来开启对xxx的支持。
@EnableAspectJAutoProxy :开启对AspectJ自动代理的支持。
@EnableAsync :开启异步方法的支持。
@EnableScheduling :开启计划任务的支持。
@EnableWebMvc :开启MVC的配置支持。
@EnableConfigurationProperties :开启对 @ConfigurationProperties注解配置Bean的支持。
@EnableJpaRepositories :开启对SpringData JPA Repository的支持。
@EnableTransactionManagement :开启注解式事务的支持。
@EnableCaching :开启注解式的缓存支持。
9、 MVC相关注解
@EnableWebMvc:在配置类中开启Web MVC的配置支持,如一些 ViewResolver 或者 MessageConverter 等,若无此句,重写WebMvcConfigurerAdapter 方法(用于对Spring MVC 的配置)。
@Controller:声明该类为SpringMVC中的Controller。
@RequestMapping:用于映射Web请求,包括访问路径和参数(类或方法上)。
@ResponseBody:支持将返回值放在response内,而不是一个页面,通常用户返回json 数据(返回值旁或方法上)。
@RequestParam(“username”) 将请求参数绑定到控制器的方法参数上。
@PathVariable:用于接收路径参数,比如@RequestMapping(“/hello/{name}”)申明的路径,将注解放在参数中前,即可获取该值,通常作为 Restful 的接口实现方法。
@RestController :该注解为一个组合注解,相当于@Controller和@ResponseBody的组合,注解在类上,意味着,该Controller的所有方法都默认加上了@ResponseBody。
10、 异常处理相关注解
@ControllerAdvice :用于处理全局异常。
@ExceptionHandler :用于更细化的异常处理。