Spring中常用的注解
使用注解要开启自动扫描功能
<context:component-scan base-package="要扫描的包路径"/>
-
@Configuration 该注解作用的类相当于IOC容器,生成bean对象,等价于XML配置文件中配置的beans;同时在XML文件中必需使用<context:component-scan base-package=”XXX”/> 进行扫描
-
@Bean 作用于方法,表示将方法生成的对象放入IOC容器
-
@Value 从配置文件中获取值
-
@Qualifier 指定自动注入的Bean对象的名称,与@Autowire的一起用,因为自动注入默认是按照类型注入的,如果同一类型下有多个bean对象,则需要指定注入的是哪一个,即按照名称注入
-
@Resource注解与@Autowired注解作用类似,但是两个注解的匹配bean的顺序不一样
- resource注解默认是按照name名称属性来匹配
- 或者通过name属性和type属性指定匹配的bean
- Autowired则是默认按照类型来进行注入的
- Autowired是属于Spring提供的注解,Resource是J2EE的注解,是java的产物
6.@Scope 用来设置bean对象的作用域,例如singloton、prototype等,spring中默认bean对象的作用范围是单例的,单例对象是当IOC容器创建后就创建并加载
7.【@Repository、@Service、@Controller】这三个注解作用于类会将这个类生成的对象作用为bean放入spring容器,他们的作用相同,在开发中分别对应于持久层、服务层、表现层
-
@Component 注解与上述三个注解的作用相同,是所有收Spring管理组件的通用形式,当组件不好归类的时候就可以使用这个
-
@Lazy(true) 表示延迟初始化
-
@PostConstruct 用在方法上表示指定初始化bean之前执行的方法,
-
@DependsOn 定义Bean对象初始化及销毁时的顺序
-
@Primary 在自动装配的时候,如果Bean有多个可选对象,则被注解为@Primary的bean将作为优选注入,否则将抛异常
-
@PreDestroy 摧毁bean之前进行的操作
-
@Async 异步方法调用,该注解作用的方法或者类里的所有方法都需要异步处理,即被注解的方法或者类中的方法执行的时候会由spring创建新的线程来执行,而调用他们的方法会在原来的线程中继续执行
-
@Named 与注解@Component功能相同
-
@Singleton作用于类表示这是一个单例类
-
@Valid 是应用在javabean上的校验,递归的对关联对象进行校验, 如果关联对象是个集合或者数组,那么对其中的元素进行递归校验,如果是一个map,则对其中的值部分进行校验.(是否进行递归验证)
-
@Valided注解 如果想对使用@RequestParam方式接收参数方式校验使用@Validated
-
@RequestBody
-
@CrossOrigin 作用于解决跨域访问的问题
-
@RequestParam 提取和解析请求中的参数,支持类型转换
@RequestParam([value=”number”], [required=false]) String number
-
@PathVariable:处理requet uri部分,当使用@RequestMapping URI template 样式映射时, 即someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上
-
@RequestHeader,@CookieValue: 处理request header部分的注解,将uri传入的信息绑定到方法的参数上
-
@ResponseStatus 可以作用于异常类,其指定的value即HTTP状态码和reason即错误信息都将被返回给前端,当修饰类或者方法,会将value和reason信息添加到response里
@ResponseStatus(value=HttpStatus.FORBIDDEN, reason=“出现了错误”)
public class UserException extends RuntimeException{
XXXXX
}
- @RestController = @Controller + @ResponseBody 即指定了该类是controller组件,同时其方法返回的是String或者json类型的数据
- @ControllerAdvice 即把@ControllerAdvice注解内部使用@ExceptionHandler、@InitBinder、@ModelAttribute注解的方法应用到所有的 @RequestMapping注解的方法。非常简单,不过只有当使用@ExceptionHandler最有用,另外两个用处不大。
- 元注解包括 @Retention @Target @Document @Inherited四种元注解是指注解的注解
- @RequestMapping 处理映射请求的注解,用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。有6个属性,分别是:
- value 即指定请求的实际地址
- method 即请求的method类型有Get Put Post Delete Head Connect Options等
- consumes即HTTPrequest请求中的 content-type ,请求提交的内容的类型,例如json、String等类型
- produces 指定返回的内容的类型
- params 即指定request中必须包含哪些参数值
- headers 即request请求中的header值
- @GetMapping和@PostMapping 即等价于指定@RequestMapping中的method方法分别为get和post
@GetMapping(value = “page”)等价于@RequestMapping(value = “page”, method = RequestMethod.GET)
@PostMapping(value = “page”)等价于@RequestMapping(value = “page”, method = RequestMethod.POST)