SpringBoot常用注解

1、@SpringBootApplication:

   这个注解是SpringBoot的核心注解,用在SpringBoot的主类上,标识这是一个SpringBoot的应用,用来开始SPringBoot的各项能力。实际上这个注解是 @Confinguration,@EnableAutoConfiguration,@ComponentScan三个注解的组合 。由于这些注解都是一起使用,所以SpringBoot提供了一个统一的注解,@SpringBootApplication

下面是SpringBoot注解的部分源码

spring boot 条件注解 springboot全部注解_返回结果


2 @EnableAutoConfiguration :

   允许SpringBoor自动配置注解,开启这个注解之后,SpringBoot就能根据当前类路径下的包或者类来配置SpringBean。

@EnableAutoConfiguration 源码

spring boot 条件注解 springboot全部注解_spring_02


发现它内部调用了@Import注解加载了AutoConfigurationImportSelector.class,也就是自动配置选择器。AutoConfigurationImportSelector源码

spring boot 条件注解 springboot全部注解_java_03


这里isEnable()方法判断了是否开启自动配置,如果开启成功,则getProperty(),加载SpringBoot的默认配置文件。

3.@Configuration

   用于定义配置类,指出该类是Bean配置的信息源,相当于传统的xml文件。

spring boot 条件注解 springboot全部注解_返回结果_04


4.@ComponentScan

   组件扫描,让SpringBoot扫描到Configuration类并把他加入到程序上下文。@ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中。

5.@Repository

   给bean在容器中命名

例如:

spring boot 条件注解 springboot全部注解_HTTP_05


spring boot 条件注解 springboot全部注解_java_06


6.@Service:

   一般用于修饰service层的组件

7.@RestController:

   用于标注控制层组件,表示这是控制bean,并且是将函数的返回值直接填入HTTP响应体中,是REST风格的控制器,它是@Controller和@ResponseBody的合集。

spring boot 条件注解 springboot全部注解_返回结果_07


@RestController源码

spring boot 条件注解 springboot全部注解_HTTP_08


8、@ResponseBody

   表示该方法的返回结果直接写入HTTP response dody中。一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。9.@Component

   泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。使用@Component注解标志的类,会被SpringBoot统一管理。

10.@Bean

   相当于XML中的,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。

11.@AutoWired

   它可以对类成员变量,方法及构造函数进行标注,完成自动装配的工作,@Autowired的使用来消除 set ,get方法。 但是在使用@Autowired注解之前,我们需要对一个bean使用@Component注解。

例:

spring boot 条件注解 springboot全部注解_java_09


spring boot 条件注解 springboot全部注解_spring_10


12.@RequestMapping

   用来处理请求地址映射的二胡直接,负责url到Controller中的具体函数的映射,可以用于类或方法上。用于类上表示类中所有响应请求的方法都是以该地址作为父路径。

13.@RequestParam

   用在方法的参数前面,例如:

spring boot 条件注解 springboot全部注解_spring_11


在请求的时候为localhost:8080/hello2?name=zhangsan

14. @Date

   @Date注解是Lombok提供的,可以为类提供get()和set方法,还有equals(),hashCode(),toString()等方法。所以使用@Date注解后,bean类的编写就非常简单。也可以使用@ToString注解,生成toString方法

spring boot 条件注解 springboot全部注解_返回结果_12