日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot核心注解介绍

發布時間:2024/4/13 javascript 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot核心注解介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
我們看一下SpringBoot核心注解的一個介紹,其實我們之前在SpringBoot當中呢,我們用過這些注解了,只是我們沒有去說一下每個注解的詳細含義,那么我們在這里把它補齊,我們打開我們的代碼,我們看哪個呢,啟動類開始,我們看一下啟動類這里,加一個@SpringBootApplication的注解,我們先把他加進來,到底是干嘛用的,其實就是標記為你當時在哪個類上加了注解了,表示當前類是SpringBoot的一個啟動類,代表的是SpringBoot的啟動類,那么啟動類在啟動的過程當中,要做很多事,那他在啟動當中要做什么事呢,我們再看,我們打開這個注解,我們點開,看看他的源碼,在這個注解當中呢@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = {@Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication {他又被這么多注解所修飾,所定義,換句話說,我這里所修飾的注解,都具備這個特點的,注解Annotation的一個特點,那么在SpringBootApplication注解上,有這么多注解,一個是@SpringBootConfiguration,還有一個是@EnableAutoConfiguration,還有一個@ComponentScan,這三個是我們所關心的,先來看一下@SpringBootConfiguration,這個注解是干嘛用的,我們點開他看一下,@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Configuration public @interface SpringBootConfiguration {在這個注解當中呢,它是一個空的,什么都沒有,但是關鍵是,他被另一個注解所定義了,就是這個@Configuration,這個注解是非常重要的,其實SpringBootConfiguration,具備了@Configuration的能力了,那么這個注解是非常重要的一個注解,其實我們就可以注意一下,SpringBootConfiguration的作用就是,通過ben對象來獲取配置信息,之所以他具備這個能力,是因為他被@Configuration修飾了,這個注解是什么呢,通過bean對象完成或者獲取配置信息的能力其實是@Configuration的,這個大家對他并不陌生,它是在Spring3.0以后的一個注解,這個注解最大的特點是,來代替我們的XML配置文件,通過對bean對象的操作,替代spring中的xml文件,所以我們在講SpringBoot的時候,我們也用過這個注解@SpringBootConfiguration,然后你哪個類加上了@SpringBootConfiguration了,都會對這個類的內容做一個觸發,我們當時使用@Configuration和@Bean注解,大家應該有印象,所以這個注解是非常重要的,所以正因為有這個注解的存在,我們的配置文件當中,就沒有了xml文件,@Configuration一個介紹,這樣我們就把SpringBootConfiguration講完了,我們再來看@EnableAutoConfiguration,這個注解干嘛用的呢,我們點開他的源碼看一下@SuppressWarnings("deprecation") @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @AutoConfigurationPackage @Import(EnableAutoConfigurationImportSelector.class) public @interface EnableAutoConfiguration {在這里他有一個@AutoConfigurationPackage,然后里面還有其他的,我就不往下看了,這里直接解釋一下注解的作用,這個注解的作用其實就是根據當前項目所導入的jar包,我們的項目當中是一個maven項目,導入了一些jar包,它會根據我們所導入的jar包,創建我們項目的啟動環境,舉個例子,我們這里不是導入了一個WEB啟動器嗎,我們都知道boot中的WEB啟動器,包含了MVC信息的,但是我們現在并沒有對MVC配置的配置文件,包括組件掃描,還有web.xml里面配置dispatcherServlet,這些我們都沒有,那么都沒有這些信息怎么去配置的呢,其實就是通過EnableAutoConfiguration來完成的,在這里會根據我們的需要,根據我們的jar包結構,來對我們的WEB環境做一個初始化的,所以這個EnableAutoConfiguration的作用呢,就是幫我們初始化一個WEB環境,完成一些初始化環境的配置,這個是EnableAutoConfiguration的作用,我們再打開看,這個@ComponentScan@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @Documented @Repeatable(ComponentScans.class) public @interface ComponentScan {這個注解的作用干嘛的呢,不用在往上看了,我們說一下這個注解的作用,其實這個注解就比較簡單了,就是完成Spring的組件掃描,他來替代什么呢,替代我們之前在XML文件中,配置組件掃描的配置,還記得那個配置嗎,我們需要用到一個context命名空間下的,然后有一個component-scan,然后package等于一個包名,然后他會根據包來做組件的掃描,那么這一個配置呢,<context:component-scan base-package="" />所以也就有他這樣一個注解的存在,所以我們也不需要配置文件了,也不需要在配置文件里去配他了,所以這些注解就構成了我們SpringBoot在啟動時一些核心配置的支持,所以我們的SpringBoot你會發現SpringBoot項目當中,Spring配置文件一個都不用了,原因就是這些注解的一個作用,才能出現這個效果,這是根配置相關的一些注解,我們通過名字也能看到他的一些含義,在這里我們再來介紹一個注解,比如說這個Controller,我們用到了一個@RestController的注解,我們點開他來看一看,其實你會發現這個注解是非常簡單的,它是被兩個注解所定義@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Controller @ResponseBody public @interface RestController {一個是@Controller,一個是@ResponseBody,Controller不用說了,我們用過SpringMVC的都知道,表示的是一個處理單元,處理器或者是控制器,然后@ResponseBody呢,表示你當前的返回都是以一個JSON的格式,來做一個響應,所以把這兩個注解都耦合到RestController里,如果你的Controller被RestController所修飾,首先你這個類是Controller,然后下面所有的方法都會以JSON的數據返回,就是我們這里為什么加了RestController,就是我們方法不用加ResponseBody的一個原因,所以原因就是在這,他的這兩個注解里包含了這兩個注解,他有兩個特點,第一個表示是一個Controller,表示當前的這個Controller下所有的方法都會以JSON的格式響應,所以這個注解理解起來也是比較簡單的,那么我們目前涉及的一些核心注解呢,就是這一塊,其實最關鍵的就是啟動類里的注解,可以花點時間看一看,也不是什么太難的事,其實我們主要是對之前的SpringBoot做一個補充,看一看源代碼,相信大家自己也可以通過源代碼看出里面的特點

?

總結

以上是生活随笔為你收集整理的SpringBoot核心注解介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。