我们在用spring框架的时候,常常会用到注解。可是一个项目做久了,就只在那里复制粘贴了。前两天在街上有人问我:处理请求地址映射的注解是哪个。 我当时觉的好简单,我每天都在用,却不会拼写,因为每天都在复制粘贴。
来总结一下Spring常用的注解吧:
组件:
@Component
- 调用无参构造创建一个bean对象,并把对象存入spring的IOC容器,交由spring容器进行管理。相当于在xml中配置一个bean。
@Controller
- 用于标注控制层组件
@Service
- 用于标注业务层组件
@Repository
- 用于标注持久层(数据库操作层)组件
@Bean
- 用于把当前方法的返回值作为bean对象存入spring的ioc容器中
控制层常用:
@RequestMapping
- 一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示关中的所有响应请乐的方法都是以该地址作为父路径
- 可以把Request请求header部分的值绑定到方法的参数上
@ResponseBody
- 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区
- 返回的数据不是HTML标签的页面,而是其他某种格式的数据时(如json,xml等)使用
@PathVariable
- 用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出url模板中的变量作为参数
@RequestParam
- 主要用于在SpringMVC后台控制层获取参数,类似一种是 request.getParameter(“name”)
@RequestHeader
- 可以把Request请求header部分的值绑定到方法的参数上
@CrossOrigin
- 允许跨域请求的注解,可以在后面设置指定域名跨域。
- 可以只写在指定的方法上。 也可以写在类上,让类里的所有方法都可跨域。
@Autowired
- 用于依赖注入的注解,用来动态装配bean。
其他:
@RestController
- 相当于@Controller和@responseBody的组合效果
@ModelAttribute
- 被@ModelAttribute注释的方法会在此controller每个方法执行前被执行
@SessionAttributes
- 将值放到session作用域中
@CookieValue
- 获取Cookie中的值
@Valid
- 实体数据校验
@Value
- 通过@Value可以将外部的值动态注入到Bean中,可以为基本类型数据和String类型数据的变量注入数据
@Scope
- 指定bean的作用范围。
@PostConstruct
- 指定初始化方法
@PreDestroy
- 指定销毁方法