SpringBoot 中常用的注解有哪些?

75 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

  • @RequestMapping("/xxx",method = "xxx")

     默认接收所有类型的 HTTP 请求,可以使用 method 属性来指定某种HTTP请求方法。
    
  • @PathVariable("/www/{xxx}")

     通过 URL 中占位符参数{xxx}绑定到处理器类的方法形参中
    
  • @Autowired

     默认按类型装配,如果我们想使用按名称装配,可以结合 @Qualifier 注解一起使用
     例如实现同一个接口的两个不同的 service
    

    第一个实现类

    第二个实现类

    autowired注入资源

  • @Qualifier

     申明 bean 名字,且可以按 bean 名字加载 bean
     通过这个标示,表明了哪个实现类才是我们所需要的,添加 @Qualifier 注解,需要注意的是 @Qualifier 的参数名称为我们之前定义 @Service 注解的名称之一
    
  • @SpringBootApplication

     复合注解,包含了 @SpringBootConfiguration@EnableAutoConfiguration@ComponentScan 这三个注解
    
    • @SpringBootConfiguration:标注当前类是配置类,这个注解继承自 @Configuration 。并会将当前类内声明的一个或多个以 @Bean 注解标记的方法的实例纳入到srping容器中,并且实例名就是方法名。
    • @EnableAutoConfiguration:是自动配置的注解,这个注解会根据我们添加的组件jar来完成一些默认配置,我们做微服时会添加 spring-boot-starter-web 这个组件 jar 的 pom 依赖,这样配置会默认配置 springmvc 和 tomcat。
    • @ComponentScan:扫描当前包及其子包下被 @Component,@Controller,@Service,@Repository 注解标记的类并纳入到 spring 容器中进行管理。等价于context:component-scan的 xml 配置文件中的配置项。
  • @RestController

     @Controller@ResponseBody 的结合,一个类被加上 @RestController 注解,
     数据接口中就不再需要添加 @ResponseBody 。更加简洁。
    
  • @ConditionalOnMissingBean

    该注解表示,如果存在它修饰的类的bean,则不需要再创建这个bean。

  • @Bean

    @Bean注解是被设计使用在方法上的,在方法上使用@bean注解的时候,该方法就会被告知去产生一个bean对象,然后这个bean对象交给spring管理,且产生这个bean对象的方法在整个spring的生命周期中只会被调用一次,调用完成之后spring会将这个bean对象放在自己的ioc容器中。