天天看點

componentscan注解的用法和作用_Spring Boot 這麼火,常用注解和原理都給你整理好了...

作者:雲天 連結:https://www.cnblogs.com/tqlin/p/11687811.html
           

一、啟動注解 @SpringBootApplication

componentscan注解的用法和作用_Spring Boot 這麼火,常用注解和原理都給你整理好了...

檢視源碼可發現,@SpringBootApplication是一個複合注解,包含了@SpringBootConfiguration,@EnableAutoConfiguration`,@ComponentScan`這三個注解

``@SpringBootConfiguration注解,繼承@Configuration注解,主要用于加載配置檔案@SpringBootConfiguration繼承自@Configuration`,二者功能也一緻,标注目前類是配置類, 并會将目前類内聲明的一個或多個以@Bean注解标記的方法的執行個體納入到spring容器中,并且執行個體名就是方法名。

@EnableAutoConfiguration 注解,開啟自動配置功能@EnableAutoConfiguration可以幫助SpringBoot應用将所有符合條件的@Configuration配置都加載到目前SpringBoot建立并使用的IoC容器。借助于Spring架構原有的一個工具類:SpringFactoriesLoader的支援,@EnableAutoConfiguration可以智能的自動配置功效才得以大功告成

@ComponentScan 注解,主要用于元件掃描和自動裝配@ComponentScan的功能其實就是自動掃描并加載符合條件的元件或bean定義,最終将這些bean定義加載到容器中。我們可以通過basePackages等屬性指定@ComponentScan自動掃描的範圍,如果不指定,則預設Spring架構實作從聲明@ComponentScan所在類的package進行掃描,預設情況下是不指定的,是以SpringBoot的啟動類最好放在root package下。

二、Controller 相關注解

@Controller

控制器,處理http請求。

@RestController 複合注解

檢視@RestController源碼

@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@[email protected]@ResponseBodypublic @interface RestController {  @AliasFor(annotation = Controller.class) String value() default "";}
           

從源碼我們知道,@RestController注解相當于@ResponseBody+@Controller合在一起的作用,RestController使用的效果是将方法傳回的對象直接在浏覽器上展示成json格式.

@RequestBody

通過HttpMessageConverter讀取Request Body并反序列化為Object(泛指)對象

@RequestMapping

@RequestMapping 是 Spring Web 應用程式中最常被用到的注解之一。這個注解會将 HTTP 請求映射到 MVC 和 REST 控制器的處理方法上

@GetMapping用于将HTTP get請求映射到特定處理程式的方法注解

注解簡寫:@RequestMapping(value = "/say