Spring常用的几个注解

Spring注解

IOC常用注解

  • 组件扫描 Spring容器需要我们配置一个基础包名,只有在这包及其子包下类中的注解才会被Spring识别。 Spring常用的几个注解_第1张图片
  • @Component
    创建对象:使用被标注的类创建出对象。放入spring容器中,这个对象的默认标识是当前类名首字母小写,也可以使用@Component(“id”)形式自定义id,相当于xml中的

这三个主键的功能和@Component相似,他们分别标注在不同的层上,
@Controller:标注在表现层的类上
@Service:标注在业务层的类上
@Repository:标注在持久层的类上
推介使用这三个,当一个类实在是不好归属的时候,再去使用@Component

  • @Scope
    这个主键有俩个值,一个是singleton,也是默认值,意为单例,另一个是prototype,意为多例,这个注解的含义就是用于配置对象的作用范围支持一个value属性,用作声明是单例还是多例。
  • @PostConstruct @PreDestroy
    这两个注解标注方法分别在对象的创建之后和销毁之前执行,相当于
  • bean init-method=“init” destroy-method=“destory” />

    • @Autowired
      表示自动装配,它可以标注在set方法上,也可以标注在属性上,如果此注解标注在属性上,set方法可以省略。并且如果这个注解标注在了属性上或者方法上,就代表当前属性或者当前方法需要依赖注入了,Spring会首先按照被标注属性的类型在容器中查找,如果找不到,就直接报错,如果找到了,而且正好找到一个,直接进行注入,如果找到了,但是找到多个,Spring就会根据当前属性的name在找到的多个bean对象中进行匹配,如果配置中了,就直接注入,如果配置不住,就报错。
    • @Qualifier
      要跟@Autowired联合使用,代表在按照类型匹配的基础上,再按照名称匹配。
    • @Bean
      这个主键用作将applicationContext.xml配置文件的方式转换为配置类的时候使用。在配置文件中如果是Bean标签,就使用@Bean注解,如果不是的话,就是用新注解
    • @ComponentScan
      组件扫描注解,常用在将配置文件转换为配置类的时候使用,标注在类上, 但是在使用了这个注解以后,测试中我们之前使用的ClassPathXmlApplicationContext扫描配置文件的方式就不可以使用了,要更换成AnnotationConfigApplicationContext来进行启动Spring容器。
    • @PropertySource
      用于读取类路径下的配置文件,切记是.properties格式。
    • @Value
      用于给java对象进行简单类型的数据依赖注入
    • @Import
      当我们多人协同开发时,开发出来的多个配置文件,就可以使用这个注释,导入到一个住配置类或者配置文件中。
      10. @Configuration
      被次注解标注的类,会被Spring认为是配置类,Spring在启动的时候会自动扫描并加载所有配置类,然后将配置类中bean放入容器中。
    • @RunWith
      这个注解主要用作于单元测试中,当我们在之前点击run的时候,底层工作的其实就是一个运行器,这个运行器就是junit提供的,他不认识Spring环境,这也就意味着它无法中Spring容器中获取bean,如果想要从Spring中获取bean,那就先必须认识bean环境,Spring提供一个运行器,这个运行器认识spring环境,就可以获取对象了,@RunWith(SpringJUnit4ClassRunner.class)也就是先将运行器切换成Spring自己的。
    • @ContextConfiguration
      这个注解也是作用于最多的地方就是单元测试中,等Spring将运行器切换成自己的运行器以后,我们就可以使用这个注解来告诉Spring使用什么配置来启动IOC环境。这其中有俩个常用的值:
      @ContextConfiguration(classses=SpringConfig.class),这个是当我们的Spring配置是类的时候使用
      @ContextConfiguration(classpath:SpringConfig.xml)这个是当我们的Spring配置是配置文件的时候使用。
    • @Component
      事务管理器

    AOP常用注解

    • @Aspect
      表示这是一个切面的配置
    • @pointcut
      常在切面的配置中使用,表示这是一个切点
    • @Before(“”)
      常在切面的配置中使用,表示在切点方法执行之前执行
    • @AfterReurning(“”)
      常在切面的配置中使用,表示这是一个在方法正常结束时执行
    • @AfterThrowing(“”)
      常在切面的配置中使用,表示执行切点方法时出现异常
    • @After(“”)
      常在切面的配置中使用,表示切点方法执行到了最后
    • @Transational(“”)
      表示针对哪个方法进行事务控制,可以声明在方法上,也可以声明在类上,声明在方法上的优先级要高于声明在类上。

    SpringMvc

    • @RequestMapping
      用于建立请求URL和处理方法之间的对应关系,常见属性如下:
      value:等同于path,用于为当前方法绑定访问路径,支持数组的写法(代表当前方法可以处理多个不同的请求路径)
      method:用于限制请求类型,支持数组的写法,如果省略此选项,代表不对请求类型做限制。
      注意:次注解可以标注在方法上,也可以标注在类上,标注在类上代表类中的所有方法都可以共用一段URL

    • @RequestParam
      标注在方法参数之前,用于对传入的参数做一些限制,或可以使用它接受前端的集合,而不用封装到实体。支持三个属性;
      value:默认属性,用于指定前端传入的参数名称,当前端传入参数名称和后端形参名称不一样的时,使用次注解做一个对象
      required:以为使用次注解标注的参数必须要有值,用于指定此参数required=false取消这个限制。
      defaultValue:当前参数为非必传参数且前端没有传入参数时,指定一个默认值。

    • @RequestHeader
      此注解可以获取请求头中给的数据,并封装到指定的map中,@RequestHeader(Value)可以指定的键接受请求头中某一项的值,例如:@RequestHeader(“Cookie”)就是接受请求头中cookie的值。@RequestHeader(“host”)就是用于接受请求头数据,并且封装到指定的String中

      • @RequestBody
        此注解用于异步交互中,并且前端请求方式必须为post请求,次注解作用是:用于接受前端传递的请求体中的json数据,并可以自动转换封装到指定的对象中。
    • @ResponseBody
      次注解用于异步交互中,作用为:将controller方法返回的对象通过转换器转换为指定的格式(通常为json)之后,再写回响应。

    • @RestController
      次注解的作用相当于@Response+@Controller。我们可以看一下源码。
      Spring常用的几个注解_第2张图片

    • @PostMapping
      这是一个复合注解,常用于restful风格中,用于接受限制请求方式的请求,相当于

    @RequestMapping(value="",method=RequestMethod.POST)
    
    • @GetMapping
      这是一个复合注解,常用于restful风格中,用于接受限制请求方式的请求,相当于
    @RequestMapping(value="",method=RequestMethod.GET)
    
    • @PathVariable
      次注解用于从请求路径上获取请求参数。如果你的@RequestMapping("/user/{id}/{name}")这样写的话,你就需要这样的一个注解,来帮助你获取到你想要的值。

    • @Component
      次注解用于异常处理机制时定义一个异常类,如果你使用的是xml配置方式的话,就需要这样的一个注解定义一个异常类,然后实现HandlerExceptionResolver这样的一个借口,重写其中的resolveException方法。这个方法中会有四个步骤:
      1:e.printStackTrace(); 这是记录异常的步骤,给运维人员使用
      2:ModelAndView modelAndView =new ModelAndView 这是为了返回一个好看的视图,给用户使用
      3:modelAndView.setViewName(“视图名称”); 将你要返回的视图名称比如错误页添加到modelAndView
      4:return modelAndView; 返回这个视图

      Spring常用的几个注解_第3张图片

    • @ControllerAdvice

    • @ExceptionHandler
      次注解用于异常处理机制时定义一个异常类,如果你使用的是纯注解的方式,就需要用到这俩个注释,@ControllerAdvice 这个注解要标注在类上,表示当前类是一个全局异常处理器的类。@ExceptionHandler 这个注解要标注在方法上,表示当前方法可以处理哪些异常。比如说空指针异常。
      Spring常用的几个注解_第4张图片

    不足之处,欢迎指点

    你可能感兴趣的:(spring,spring,boot,java,单元测试,springmvc)