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)

  • 相关阅读:
    (黑马十次方项目day06)@ConfigurationProperties报错的解决方式
    (黑马十次方项目day04)An attempt was made to call a method that does not exist. The attempt was made from the following location:
    (黑马十次方项目day02)使用map接收form表单的参数
    (黑马十次方项目day02)IDEA在方法之间添加分隔符及开启Run Dashboard管理
    (黑马十次方项目day01)spring-boot-starter-parent 包maven依赖报错
    (黑马十次方项目day01)从PDF文件中复制代码到pom文件中project报错
    ER图学习
    java 8 函数式库Vavr功能
    Guava Cache
    UML学习
  • 原文地址:https://www.cnblogs.com/zwwang/p/15153063.html
Copyright © 2011-2022 走看看