@Configuration結合@Bean實現對象的配置


@Configuration結合@Bean實現對象的配置


前提:最近項目中需要做支付接口,支付寶以及微信支付,本文並不介紹如何寫支付接口,而是通過這個示例講解配置應該怎么寫,項目中使用的是Kotlin語言

眾所周知:Spring中的注解分為兩種:注冊類使用類,且Spring默認是單例模式,記住這兩點很重要。

(1)注冊類包括:Controller、Service、Repository、Configuration、Component、Bean等,這些注解告知了Spring容器這些Bean的種類,讓他們各司其職。其中@Bean注解告知Spring容器:我現在要給你一個我已經配置好了的對象(即Bean),以后無論在哪使用這個Bean,都無需再進行配置了。-- 為什么會這樣呢?是因為Spring的Bean默認是單例模式的,內存中只會存儲一個這樣的對象,熟悉JVM內存區域的都知道,對象均存儲在堆內存中,一個對象分為:對象頭、實例數據、對齊填充。其中實例數據就存放了對象中的內容數據,所以每次要用到相關對象時,Spring自動將已經注冊且配置好的Bean給你使用。

(2)使用類包括:@Resource、@AutoWired等,這兩個注解主要將依賴注入到Bean當中,使用時無需使用new關鍵字。

在Spring整個項目的運行過程中,是通過一個個的Bean互相協調工作的,特別是當你使用第三方組件的時候(比如redis),使用SpringBoot的注解(@Configuration)可以輕松實現Java語言進行配置,不用再寫繁瑣的Xml文件,這里只介紹使用注解方式進行配置

SpringBoot的配置可以分為兩類 :運行配置第三方組件配置

這兩個配置會將某些配置暴露出來給程序員在配置文件中配置,比如在yml文件中配置端口號,或者當集成了Hibernate等組件時,會讓你配置數據源等。比如下圖:

紅色方框是你集成SpringBoot的某個組件后,SpringBoot將這些組件的配置暴露出來讓你填的。同樣,可以看到可以看到圖中的redis,這里SpringBoot沒有將他們暴露出來,所以我們需要自己去配置:


接下來,展示如何配置支付接口的信息

這里我用了zookeeper作配置中心,另一篇博文會有介紹,但不妨礙我講實現方法

首先將配置文件中的信息使用@Value注入到字段中,這里因為使用的是zookeeper,所以只在配置文件中配置了zookeeper的相關信息。

然后通過@Bean注解,告知Spring容器,我會返回給你一個對象這個對象是我已經配置好了的對象,以后使用的時候就不用再配置了。

這里是使用這個Bean的地方,通過@Resource注入依賴


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM