最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot中一些比較常用的注解總結(jié)

 更新時(shí)間:2021年06月11日 17:20:41   作者:My--Style  
今天給大家?guī)?lái)的是關(guān)于Java的相關(guān)知識(shí),文章圍繞著springboot中一些比較常用的注解展開(kāi),文中有非常詳細(xì)的總結(jié),需要的朋友可以參考下

springboot常用注解

1、@SpringBootApplication

這個(gè)注解是Spring Boot最核心的注解,用在 Spring Boot的主類(lèi)上,標(biāo)識(shí)這是一個(gè) Spring Boot 應(yīng)用,用來(lái)開(kāi)啟 Spring Boot 的各項(xiàng)能力。實(shí)際上這個(gè)注解是@Configuration,@EnableAutoConfiguration,@ComponentScan三個(gè)注解的組合。由于這些注解一般都是一起使用,所以Spring Boot提供了一個(gè)統(tǒng)一的注解@SpringBootApplication。

2、@EnableAutoConfiguration

允許 Spring Boot 自動(dòng)配置注解,開(kāi)啟這個(gè)注解之后,Spring Boot 就能根據(jù)當(dāng)前類(lèi)路徑下的包或者類(lèi)來(lái)配置 Spring Bean。
如:當(dāng)前類(lèi)路徑下有 Mybatis 這個(gè) JAR 包,MybatisAutoConfiguration 注解就能根據(jù)相關(guān)參數(shù)來(lái)配置 Mybatis 的各個(gè) Spring Bean。
@EnableAutoConfiguration實(shí)現(xiàn)的關(guān)鍵在于引入了AutoConfigurationImportSelector,其核心邏輯為selectImports方法,邏輯大致如下:
 ● 從配置文件META-INF/spring.factories加載所有可能用到的自動(dòng)配置類(lèi);
 ● 去重,并將exclude和excludeName屬性攜帶的類(lèi)排除;
 ● 過(guò)濾,將滿(mǎn)足條件(@Conditional)的自動(dòng)配置類(lèi)返回;

3、@Configuration

用于定義配置類(lèi),指出該類(lèi)是 Bean 配置的信息源,相當(dāng)于傳統(tǒng)的xml配置文件,一般加在主類(lèi)上。如果有些第三方庫(kù)需要用到xml文件,建議仍然通過(guò)@Configuration類(lèi)作為項(xiàng)目的配置主類(lèi)——可以使用@ImportResource注解加載xml配置文件。

4、@ComponentScan

組件掃描。讓spring Boot掃描到Configuration類(lèi)并把它加入到程序上下文。
@ComponentScan注解默認(rèn)就會(huì)裝配標(biāo)識(shí)了@Controller,@Service,@Repository,@Component注解的類(lèi)到spring容器中。

5、@Repository

用于標(biāo)注數(shù)據(jù)訪問(wèn)組件,即DAO組件。
使用@Repository注解可以確保DAO或者repositories提供異常轉(zhuǎn)譯,這個(gè)注解修飾的DAO或者repositories類(lèi)會(huì)被ComponetScan發(fā)現(xiàn)并配置,同時(shí)也不需要為它們提供XML配置項(xiàng)。

6、@Service

一般用于修飾service層的組件

7、@RestController

用于標(biāo)注控制層組件(如struts中的action),表示這是個(gè)控制器bean,并且是將函數(shù)的返回值直 接填入HTTP響應(yīng)體中,是REST風(fēng)格的控制器;它是@Controller和@ResponseBody的合集。

8、@ResponseBody

表示該方法的返回結(jié)果直接寫(xiě)入HTTP response body中
一般在異步獲取數(shù)據(jù)時(shí)使用,在使用@RequestMapping后,返回值通常解析為跳轉(zhuǎn)路徑,加上@responsebody后返回結(jié)果不會(huì)被解析為跳轉(zhuǎn)路徑,而是直接寫(xiě)入HTTP response body中。比如異步獲取json數(shù)據(jù),加上@responsebody后,會(huì)直接返回json數(shù)據(jù)。

9、@Component

泛指組件,當(dāng)組件不好歸類(lèi)的時(shí)候,我們可以使用這個(gè)注解進(jìn)行標(biāo)注。

10、@Bean

相當(dāng)于XML中的,放在方法的上面,而不是類(lèi),意思是產(chǎn)生一個(gè)bean,并交給spring管理。

11、@AutoWired

默認(rèn)是byType方式。把配置好的Bean拿來(lái)用,完成屬性、方法的組裝,它可以對(duì)類(lèi)成員變量、方法及構(gòu)造函數(shù)進(jìn)行標(biāo)注,完成自動(dòng)裝配的工作。
當(dāng)加上(required=false)時(shí),就算找不到bean也不報(bào)錯(cuò)。

12、@Qualifier

當(dāng)有多個(gè)同一類(lèi)型的Bean時(shí),可以用@Qualifier("name")來(lái)指定。與@Autowired配合使用

13、@Resource(name="name",type="type")

沒(méi)有括號(hào)內(nèi)內(nèi)容的話(huà),默認(rèn)byName,通過(guò)名稱(chēng)找不到再去通過(guò)類(lèi)型去查找。與@Autowired干相似的事。

14、@RequestMapping

RequestMapping是一個(gè)用來(lái)處理請(qǐng)求地址映射的注解;提供路由信息,負(fù)責(zé)URL到Controller中的具體函數(shù)的映射,可用于類(lèi)或方法上。用于類(lèi)上,表示類(lèi)中的所有響應(yīng)請(qǐng)求的方法都是以該地址作為父路徑。

15、@RequestParam

用在方法的參數(shù)前面。例:

@RequestParam String a =request.getParameter("a")。

16、@PathVariable

路徑變量。參數(shù)用到入?yún)?,與大括號(hào)里的名字一樣要相同。如:

RequestMapping("user/get/mac/{macAddress}")
 
public String getById(@PathVariable String id){
 
  ....
 
}

17、@Profiles

Spring Profiles提供了一種隔離應(yīng)用程序配置的方式,并讓這些配置只能在特定的環(huán)境下生效。
任何@Component或@Configuration都能被@Profile標(biāo)記,從而限制加載它的時(shí)機(jī)。

@Configuration
 
@Profile("prod")
 
public class ProductionConfiguration {
 
    // ...
 
}

18、@ConfigurationProperties

Spring Boot可使用注解的方式將自定義的properties文件映射到實(shí)體bean中,比如config.properties文件。

@Data
 
@ConfigurationProperties("rocketmq.consumer")
 
public class RocketMQConsumerProperties extends RocketMQProperties {
 
    private boolean enabled = true;
 
    private String consumerGroup;
 
    private MessageModel messageModel = MessageModel.CLUSTERING;
 
    private ConsumeFromWhere consumeFromWhere = ConsumeFromWhere.CONSUME_FROM_LAST_OFFSET;
 
    private int consumeThreadMin = 20;
 
    private int consumeThreadMax = 64;
 
    private int consumeConcurrentlyMaxSpan = 2000;
 
    private int pullThresholdForQueue = 1000;
 
    private int pullInterval = 0;
 
    private int consumeMessageBatchMaxSize = 1;
 
    private int pullBatchSize = 32;
 
}

19、@Conditional

這是 Spring 4.0 添加的新注解,用來(lái)標(biāo)識(shí)一個(gè) Spring Bean 或者 Configuration 配置文件,當(dāng)滿(mǎn)足指定的條件才開(kāi)啟配置。

相關(guān)注解:( 

1)、@ConditionalOnBean
        組合 @Conditional 注解,當(dāng)容器中有指定的 Bean 才開(kāi)啟配置。

2)、@ConditionalOnMissingBean
        組合 @Conditional 注解,和 @ConditionalOnBean 注解相反,當(dāng)容器中沒(méi)有指定的 Bean 才開(kāi)啟配置。

3)、@ConditionalOnClass
        組合 @Conditional 注解,當(dāng)容器中有指定的 Class 才開(kāi)啟配置。

4)、@ConditionalOnMissingClass
        組合 @Conditional 注解,和 @ConditionalOnMissingClass 注解相反,當(dāng)容器中沒(méi)有指定的 Class 才開(kāi)啟配置。

5、@ConditionalOnWebApplication
        組合 @Conditional 注解,當(dāng)前項(xiàng)目類(lèi)型是 WEB 項(xiàng)目才開(kāi)啟配置。

當(dāng)前項(xiàng)目有以下 3 種類(lèi)型。 

enum Type {
 
    /**
     * Any web application will match.
     */
    ANY,
 
    /**
     * Only servlet-based web application will match.
     */
    SERVLET,
 
    /**
     * Only reactive-based web application will match.
     */
    REACTIVE
 
}

6)、@ConditionalOnNotWebApplication
        組合 @Conditional 注解,和 @ConditionalOnWebApplication 注解相反,當(dāng)前項(xiàng)目類(lèi)型不是 WEB 項(xiàng)目才開(kāi)啟配置。

7)、@ConditionalOnProperty
        組合 @Conditional 注解,當(dāng)指定的屬性有指定的值時(shí)才開(kāi)啟配置。

8)、@ConditionalOnExpression
        組合 @Conditional 注解,當(dāng) SpEL 表達(dá)式為 true 時(shí)才開(kāi)啟配置。

9)、@ConditionalOnJava
        組合 @Conditional 注解,當(dāng)運(yùn)行的 Java JVM 在指定的版本范圍時(shí)才開(kāi)啟配置。

10)、@ConditionalOnResource
        組合 @Conditional 注解,當(dāng)類(lèi)路徑下有指定的資源才開(kāi)啟配置。

11)、@ConditionalOnJndi
        組合 @Conditional 注解,當(dāng)指定的 JNDI 存在時(shí)才開(kāi)啟配置。

12)、@ConditionalOnCloudPlatform
        組合 @Conditional 注解,當(dāng)指定的云平臺(tái)激活時(shí)才開(kāi)啟配置。

13)、@ConditionalOnSingleCandidate
        組合 @Conditional 注解,當(dāng)指定的 class 在容器中只有一個(gè) Bean,或者同時(shí)有多個(gè)但為首選時(shí)才開(kāi)啟配置。

20、@ConfigurationProperties

用來(lái)加載額外的配置(如 .properties 文件),可用在 @Configuration 注解類(lèi),或者 @Bean 注解方法上面。

21、@EnableConfigurationProperties

一般要配合 @ConfigurationProperties 注解使用,用來(lái)開(kāi)啟對(duì) @ConfigurationProperties 注解配置 Bean 的支持。

22、@AutoConfigureAfter

用在自動(dòng)配置類(lèi)上面,表示該自動(dòng)配置類(lèi)需要在另外指定的自動(dòng)配置類(lèi)配置完之后。

如 Mybatis 的自動(dòng)配置類(lèi),需要在數(shù)據(jù)源自動(dòng)配置類(lèi)之后。

@AutoConfigureAfter(DataSourceAutoConfiguration.class)
public class MybatisAutoConfiguration {

23、@AutoConfigureBefore

這個(gè)和 @AutoConfigureAfter 注解使用相反,表示該自動(dòng)配置類(lèi)需要在另外指定的自動(dòng)配置類(lèi)配置之前。

24、@Import

這是 Spring 3.0 添加的新注解,用來(lái)導(dǎo)入一個(gè)或者多個(gè) @Configuration 注解修飾的類(lèi),這在 Spring Boot 里面應(yīng)用很多。

25、@ImportResource

這是 Spring 3.0 添加的新注解,用來(lái)導(dǎo)入一個(gè)或者多個(gè) Spring 配置文件,這對(duì) Spring Boot 兼容老項(xiàng)目非常有用,因?yàn)橛行┡渲脽o(wú)法通過(guò) Java Config 的形式來(lái)配置就只能用這個(gè)注解來(lái)導(dǎo)入。

到此這篇關(guān)于springboot中一些比較常用的注解總結(jié)的文章就介紹到這了,更多相關(guān)springboot注解內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • eclipse中maven插件安裝教程

    eclipse中maven插件安裝教程

    這篇文章主要為大家詳細(xì)介紹了eclipse中maven插件安裝教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Java中用POI實(shí)現(xiàn)將數(shù)據(jù)導(dǎo)出到Excel

    Java中用POI實(shí)現(xiàn)將數(shù)據(jù)導(dǎo)出到Excel

    這篇文章主要介紹了Java中用POI實(shí)現(xiàn)將數(shù)據(jù)導(dǎo)出到Excel,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • SpringBoot3-yaml文件配置方式

    SpringBoot3-yaml文件配置方式

    這篇文章主要介紹了SpringBoot3-yaml文件配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • java基礎(chǔ)學(xué)習(xí)筆記之泛型

    java基礎(chǔ)學(xué)習(xí)筆記之泛型

    所謂泛型,就是變量類(lèi)型的參數(shù)化。泛型是JDK1.5中一個(gè)最重要的特征。通過(guò)引入泛型,我們將獲得編譯時(shí)類(lèi)型的安全和運(yùn)行時(shí)更小的拋出ClassCastException的可能。在JDK1.5中,你可以聲明一個(gè)集合將接收/返回的對(duì)象的類(lèi)型。
    2016-02-02
  • java static塊和構(gòu)造函數(shù)的實(shí)例詳解

    java static塊和構(gòu)造函數(shù)的實(shí)例詳解

    這篇文章主要介紹了java static塊和構(gòu)造函數(shù)的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家理解掌握J(rèn)ava static關(guān)鍵字的函數(shù)方法,需要的朋友可以參考下
    2017-09-09
  • IDEA高效查看源碼的快捷鍵及小技巧

    IDEA高效查看源碼的快捷鍵及小技巧

    本篇文章這一部分的內(nèi)容主要為大家介紹了一些平時(shí)看源碼的時(shí)候常用的快捷鍵/小技巧!非常好用!掌握這些快捷鍵/小技巧,看源碼的效率提升一個(gè)等級(jí)
    2022-01-01
  • 在SpringBoot+MyBatis中優(yōu)雅處理多表數(shù)據(jù)清洗的實(shí)現(xiàn)步驟

    在SpringBoot+MyBatis中優(yōu)雅處理多表數(shù)據(jù)清洗的實(shí)現(xiàn)步驟

    數(shù)據(jù)清洗是指對(duì)數(shù)據(jù)進(jìn)行處理和糾錯(cuò),以去除或修復(fù)數(shù)據(jù)集中存在的錯(cuò)誤、不致、不完整和冗余的數(shù)據(jù),從而使數(shù)據(jù)更加準(zhǔn)確、可靠和有用,本文給大家介紹了在SpringBoot和MyBatis中優(yōu)雅處理多表數(shù)據(jù)清洗的實(shí)現(xiàn)步驟,需要的朋友可以參考下
    2025-03-03
  • Java一元稀疏多項(xiàng)式計(jì)算器

    Java一元稀疏多項(xiàng)式計(jì)算器

    大家好,本篇文章主要講的是Java一元稀疏多項(xiàng)式計(jì)算器,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話(huà)記得收藏一下,方便下次瀏覽
    2021-12-12
  • 基于Consumer接口、Predicate接口初使用

    基于Consumer接口、Predicate接口初使用

    這篇文章主要介紹了Consumer接口、Predicate接口初使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot項(xiàng)目訪問(wèn)任意接口出現(xiàn)401錯(cuò)誤的解決方案

    SpringBoot項(xiàng)目訪問(wèn)任意接口出現(xiàn)401錯(cuò)誤的解決方案

    今天小編就為大家分享一篇關(guān)于SpringBoot項(xiàng)目訪問(wèn)任意接口出現(xiàn)401錯(cuò)誤的解決方案,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01

最新評(píng)論

当阳市| 宁河县| 长兴县| 泗水县| 南漳县| 广灵县| 馆陶县| 锡林浩特市| 老河口市| 惠东县| 淮北市| 房产| 牡丹江市| 元阳县| 克山县| 息烽县| 游戏| 吉首市| 富裕县| 东阿县| 墨玉县| 延寿县| 无棣县| 淮阳县| 邢台县| 宁城县| 洪泽县| 万安县| 电白县| 丁青县| 麟游县| 加查县| 蒙自县| 大荔县| 彭山县| 富民县| 扶绥县| 通江县| 威海市| 寿宁县| 常熟市|