使用过spring的小伙伴们肯定经常接触它的注解,本人最近重温spring的时候,发现书里面列举的注解还是很全的。由于之前只是注重自己经常使用的注解,导致对一些不经常使用,出镜率不高的注解不是很熟悉,所以就借此机会,在这里记录一下,供大家参考(注:最上层为注解类别,下层为注解名称及对应说明)。
Bean声明:
@Component:定义基础层的通用组件。(一般都是定义明确角色的类上面)
@Service:定义业务逻辑层的服务组件。
@Repository:定义数据访问层的数据资源服务。
@Controller:定义控制器。(一般用于展示层,比如一些专门接收前台页面请求的类)
Bean注入:
@Autowired:服务以来注入,用来注入@Component,@Service定义的组件。
@Resource:服务以来注入,用来注入@Repository定义的组件。
配置类注解:
@Configuration:声明该类为配置类。(在项目启动时,会自动加载该类里面的内容,与之对应的较老的xml配置方式)
@Bean:注解在方法上,声明该方法的返回值为一个Bean实例。
@ComponentScan:用于对Component进行扫面配置。
AOP注解:
@EnableAspectJAutoProxy:开启spring对AspectJ的代理。
@Aspect:声明一个切面。(使用@After,@Before,@Around定义通知,可直接将拦截规则(切点)作为参数)
@After:在方法执行之后执行。
@Before:在方法执行之前执行。
@Around:在方法执行之前,之后都要执行。
@PointCut:声明一个切点。
Bean属性支持注解:
@Scope:设置Spring容器Bean实例的声明周期。(取值有singleton,prototype,request,session,和global session)
@PostConstrust:声明方法在构造函数执行完之后开始执行。
@PreDestroy:声明方法在Bean销毁之前执行。
@Value:为属性注入值。
@PropertySource:声明和加载配置文件。
异步操作注解:
@EnableAsync:声明在类上,开启对异步任务的支持。
@Async:声明方法是一个异步任务,Spring后台会基于线程池异步执行这个方法。
定时任务:
@EnableScheduling:声明在调度类上,开启对任务调度的支持。
@Scheduled:声明一个定时任务。(有自己配置规则)
开启功能支持:(这类注解都有一个共同的前缀:Enable)
(@EnableAspectJAutoProxy,@EnableAsync,@EnableScheduling这三个已解释,这里不做赘述)
@EnableWebMVC:开启对Web MVC的支持。
@EnableConfigurationProperties:开启对@ConfigurationProperties注解配置Bean的支持。
@EnableJpaRepostiories:开启对SpringData JPA Repostiory的支持。
@EnableTransactionManagement:开启对事物的支持。
@EnableCaching:开启对缓存的支持。
测试类相关注解:(这类注解我是真的不常用,平时基本不用)
@RunWith:运行器,Spring中通常用于对JUnit的支持。
@ContextConfiguration:用来加载配置ApplicationContext,其中class属性用来加载配置类。
Spring Mvc注解:
@Controller:看上文。
@RequestMapping:用于声明映射Web请求的地址和参数。
@ResponseBody:将返回值放到Response Body体中返回,通常用于返回JSON数据到前端。
@RequstBody:允许Requst参数在Requst Body体中。
@PathVariable:用来接收路径里面的参数。
@RestController:@Controller+@ResponseBody
@ExceptionHandler:用于全局控制器的异常处理。
@InitBinder:WebDataBinder 用来自动绑定前台请求的参数到模型(Model)。
小伙伴们谁还用过其他的一些特定注解,欢迎在评论里补充!!!感谢!