zoukankan      html  css  js  c++  java
  • 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创建新的线程来执行,而调用他们的方法会在原来的线程中继续执行

    (https://img-blog.csdn.net/20170527232312887?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWNoZW55dWFu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)

    1. @Named 与注解@Component功能相同

    2. @Singleton作用于类表示这是一个单例类

    3. @Valid 是应用在javabean上的校验,递归的对关联对象进行校验, 如果关联对象是个集合或者数组,那么对其中的元素进行递归校验,如果是一个map,则对其中的值部分进行校验.(是否进行递归验证)

    4. @Valided注解 如果想对使用@RequestParam方式接收参数方式校验使用@Validated

    5. @RequestBody

    6. @CrossOrigin 作用于解决跨域访问的问题

    7. @RequestParam 提取和解析请求中的参数,支持类型转换

      @RequestParam([value=”number”], [required=false])  String number 
      
    8. @PathVariable:处理requet uri部分,当使用@RequestMapping URI template 样式映射时, 即someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上

    9. @RequestHeader,@CookieValue: 处理request header部分的注解,将uri传入的信息绑定到方法的参数上

    10. @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)

  • 相关阅读:
    SPOJ GSS4 Can you answer these queries IV ——树状数组 并查集
    SPOJ GSS3 Can you answer these queries III ——线段树
    SPOJ GSS2 Can you answer these queries II ——线段树
    SPOJ GSS1 Can you answer these queries I ——线段树
    BZOJ 2178 圆的面积并 ——Simpson积分
    SPOJ CIRU The area of the union of circles ——Simpson积分
    HDU 1724 Ellipse ——Simpson积分
    HDU 1071 The area ——微积分
    HDU 4609 3-idiots ——FFT
    BZOJ 2194 快速傅立叶之二 ——FFT
  • 原文地址:https://www.cnblogs.com/zwwang/p/15153063.html
Copyright © 2011-2022 走看看