欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用Spring靜態(tài)注入實現(xiàn)讀取配置工具類新方式

 更新時間:2022年02月14日 15:19:10   作者:帷幄庸者  
這篇文章主要介紹了使用Spring靜態(tài)注入實現(xiàn)讀取配置工具類新方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Spring靜態(tài)注入實現(xiàn)讀取配置工具類

Spring靜態(tài)注入的核心首先是需要是一個Bean,才可以從Spring上下文中注入Bean,下例中environment是需要Autowired注入的Bean,之所以選擇Environment是因為它有Spring已經(jīng)加載好的屬性配置,直接拿來用比從文件中讀取更優(yōu)雅,從文件中讀取需要面臨jar包外部配置問題,暫時未找到較好解決辦法。

@PostConstruct修飾的方法會在服務(wù)器加載Servlet的時候運行,并且只會被服務(wù)器執(zhí)行一次。此處把PropertiesUtils被Spring實例化的Bean賦值給靜態(tài)變量tool,后續(xù)可以通過tool使用實例化好的PropertiesUtils的Bean。

getProperty作為根據(jù)key獲取指的靜態(tài)方法,實現(xiàn)獲取配置屬性。 

核心代碼

@Component
public class PropertiesUtils {
    private static PropertiesUtils tool;
    @Autowired
    private Environment environment;
    public static String getProperty(String property) {
        return tool.environment.getProperty(property);
    }
    @PostConstruct
    public void init() {
        tool = this;
        tool.environment = this.environment;
    }
}

實現(xiàn)Starter關(guān)鍵步驟——配置類,自動配置PropertiesUtils的Bean

public class AutoConfig {
? ? @Bean
? ? private PropertiesUtils propertiesUtils() {
? ? ? ? return new PropertiesUtils();
? ? }
}

實現(xiàn)Starter關(guān)鍵步驟——在resources的創(chuàng)建META-INF文件夾,創(chuàng)建spring.factories

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.example.AutoConfig

拓展

Environment :

  • Spring 為運行環(huán)境提供的高度抽象接口,項目運行中的所有相關(guān)配置都基于此接口,用來表示整個應(yīng)用運行時的環(huán)境。
  • 該接口繼承自PropertyResolver,而PropertyResolver規(guī)范了解析底層任意property資源,也就意味著application.properties是由PropertyResolver管理。
  • PropertyResolver提供了方法getProperty(String key),該方法通過傳入properties文件中定義的key,返回與給定鍵關(guān)聯(lián)的屬性值。

Spring兩種方式注入到靜態(tài)工具類里

需要注意的是下邊的兩個方法都需要工具類創(chuàng)建實例的時候才會注入。所以不建議在工具類注入實例。因為一般工具類都是直接通過類來使用的。

直接上代碼

方式1

//可以換成@Configuration,與@Inject配合使用
@Componentpublic?
class XXUtils {?
? ? ? ? //可以換成@Inject/ @Autowired
? ? ? ?@Resource
? private XXXProperties xxxPropertiesAutowired;??
? private static XXXProperties xxxProperties;??
? ? ? ?@PostConstruct?
? ? ? ?public void init() {
? ? ? ? ? ? ? this.xxxPropertiesAutowired = xxxProperties;
? ? ? ?}
}

方式2:zs

@Component
public class UrlUtil {
? ? ?private static RRJConfig rrjConfig;
? ? @Autowired
? ? public void setRRJConfig(RRJConfig rRJConfig) {
? ? UrlUtil.rrjConfig = rRJConfig;
? ? }

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringData關(guān)鍵字查詢實現(xiàn)方法詳解

    SpringData關(guān)鍵字查詢實現(xiàn)方法詳解

    這篇文章主要介紹了SpringData關(guān)鍵字查詢實現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-08-08
  • java接口私有方法實現(xiàn)過程解析

    java接口私有方法實現(xiàn)過程解析

    這篇文章主要介紹了java接口私有方法實現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • MyBatis批量插入數(shù)據(jù)的三種方法實例

    MyBatis批量插入數(shù)據(jù)的三種方法實例

    由于項目需要生成多條數(shù)據(jù),并保存到數(shù)據(jù)庫當中,項目使用了Spring+MyBatis,所以打算使用MyBatis批量插入,應(yīng)該要比循環(huán)插入的效果更好,下面這篇文章主要給大家介紹了關(guān)于MyBatis批量插入數(shù)據(jù)的三種方法,需要的朋友可以參考下
    2021-10-10
  • jpa實現(xiàn)只查詢指定的字段

    jpa實現(xiàn)只查詢指定的字段

    這篇文章主要介紹了jpa實現(xiàn)只查詢指定的字段,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • RabbitMQ死信機制實現(xiàn)延遲隊列的實戰(zhàn)

    RabbitMQ死信機制實現(xiàn)延遲隊列的實戰(zhàn)

    本文主要介紹了RabbitMQ死信機制實現(xiàn)延遲隊列的實戰(zhàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 淺談Java基準性能測試之JMH

    淺談Java基準性能測試之JMH

    JMH是Java Microbenchmark Harness的簡稱,一個針對Java做基準測試的工具。想準確的對一段代碼做基準性能測試并不容易,因為JVM層面在編譯期、運行時對代碼做很多優(yōu)化,當代碼塊處于整個系統(tǒng)中運行時并不一定會生效,產(chǎn)生錯誤的基準測試結(jié)果,這個問題就是JMH要解決的
    2021-06-06
  • java實現(xiàn)微信點餐申請微信退款

    java實現(xiàn)微信點餐申請微信退款

    這篇文章主要為大家詳細介紹了java實現(xiàn)微信點餐申請微信退款,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • Java并發(fā)編程之ConcurrentLinkedQueue隊列詳情

    Java并發(fā)編程之ConcurrentLinkedQueue隊列詳情

    這篇文章主要介紹了Java并發(fā)編程之ConcurrentLinkedQueue隊列詳情,ConcurrentLinkedQueue?內(nèi)部的隊列使用單向鏈表方式實現(xiàn),下文更多相關(guān)內(nèi)容敘述需要的小伙伴可以參考一下
    2022-04-04
  • Spring Boot使用profile如何配置不同環(huán)境的配置文件

    Spring Boot使用profile如何配置不同環(huán)境的配置文件

    ,springboot支持通過不同的profile來配置不同環(huán)境的配置,下面就大致介紹一下yml配置文件跟properties配置文件怎么使用profile配置不同環(huán)境的配置文件
    2018-01-01
  • java使用Jsoup連接網(wǎng)站超時的解決方法

    java使用Jsoup連接網(wǎng)站超時的解決方法

    jsoup是一個非常好的解析網(wǎng)頁的包,用java開發(fā)的,提供了類似DOM,CSS選擇器的方式來查找和提取文檔中的內(nèi)容,提取文檔內(nèi)容時會出現(xiàn)超時的情況,解決方法可看下文
    2013-11-11

最新評論