Spring中常用的注解

使用注解要开启自动扫描功能

<context:component-scan base-package="要扫描的包路径"/> 
  1. @Configuration 该注解作用的类相当于IOC容器,生成bean对象,等价于XML配置文件中配置的beans;同时在XML文件中必需使用<context:component-scan base-package=”XXX”/> 进行扫描

  2. @Bean 作用于方法,表示将方法生成的对象放入IOC容器

  3. @Value 从配置文件中获取值

  4. @Qualifier 指定自动注入的Bean对象的名称,与@Autowire的一起用,因为自动注入默认是按照类型注入的,如果同一类型下有多个bean对象,则需要指定注入的是哪一个,即按照名称注入

  5. @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容器,他们的作用相同,在开发中分别对应于持久层、服务层、表现层

  6. @Component 注解与上述三个注解的作用相同,是所有收Spring管理组件的通用形式,当组件不好归类的时候就可以使用这个

  7. @Lazy(true) 表示延迟初始化

  8. @PostConstruct 用在方法上表示指定初始化bean之前执行的方法,

  9. @DependsOn 定义Bean对象初始化及销毁时的顺序

  10. @Primary 在自动装配的时候,如果Bean有多个可选对象,则被注解为@Primary的bean将作为优选注入,否则将抛异常

  11. @PreDestroy 摧毁bean之前进行的操作

  12. @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  
    } 
    
    1. @RestController = @Controller + @ResponseBody 即指定了该类是controller组件,同时其方法返回的是String或者json类型的数据
    2. @ControllerAdvice 即把@ControllerAdvice注解内部使用@ExceptionHandler、@InitBinder、@ModelAttribute注解的方法应用到所有的 @RequestMapping注解的方法。非常简单,不过只有当使用@ExceptionHandler最有用,另外两个用处不大。
    3. 元注解包括 @Retention @Target @Document @Inherited四种元注解是指注解的注解
    4. @RequestMapping 处理映射请求的注解,用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。有6个属性,分别是:
      1. value 即指定请求的实际地址
      2. method 即请求的method类型有Get Put Post Delete Head Connect Options等
      3. consumes即HTTPrequest请求中的 content-type ,请求提交的内容的类型,例如json、String等类型
      4. produces 指定返回的内容的类型
      5. params 即指定request中必须包含哪些参数值
      6. headers 即request请求中的header值
    5. @GetMapping和@PostMapping 即等价于指定@RequestMapping中的method方法分别为get和post

    ​ @GetMapping(value = “page”)等价于@RequestMapping(value = “page”, method = RequestMethod.GET)

    ​ @PostMapping(value = “page”)等价于@RequestMapping(value = “page”, method = RequestMethod.POST)

    上一篇:MVC过滤器


    下一篇:SpringMVC框架介绍