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

Spring@Value使用獲取配置信息為null的操作

 更新時間:2021年07月07日 16:50:49   作者:CoderYin  
這篇文章主要介紹了Spring@Value使用獲取配置信息為null的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

一、項目背景

1、介紹:

最近在springboot項目中需要做一個阿里云OSS圖片上傳功能點,將OSS圖片上傳代碼提取到公共工具類中,為了方便其他模塊調(diào)用。

2、問題介紹

在公共工具類中使用OSS一些自定義變量信息時會獲取不到y(tǒng)ml文件中定義的OSS參數(shù)。

3、問題分析

經(jīng)過分析確定,公共工具類方法沒有被spring 容器作為bean管理,所以獲取不到配置文件信息。以前我們經(jīng)常在controller層以及service層通過@Value獲取配置文件信息,該層都被spring容器作為bean管理,所以可以輕松獲取。

4、問題解決

新建一個參數(shù)獲取類,使用@Component注解修飾類。

參見如下代碼:

參數(shù)初始化:

@Component
public class AliyunOssConstants implements InitializingBean{ 
 /**
  * 阿里云OSS地域節(jié)點
  */
 @Value("${aliyunOss.file.endpoint}")
    private String endpoint;
 
 /**
  * 阿里云OSSaccessKeyId
  */
    @Value("${aliyunOss.file.keyid}")
    private String accessKeyId;
 
    /**
     * 阿里云OSSaccessKeySecret
     */
    @Value("${aliyunOss.file.keysecret}")
    private String accessKeySecret;
 
    /**
     * 阿里云OSSbucket名稱
     */
    @Value("${aliyunOss.file.bg.bucketname}")
    private String bg_bucketname;
 
    /**
     * 阿里云OSSBucket域名
     */
    @Value("${aliyunOss.file.filehost}")
    private String filehost;    
    public  static  String SPRING_FILE_ENDPOINT;
    public  static  String SPRING_FILE_ACCESS_KEY_ID;
    public  static  String SPRING_FILE_ACCESS_KEY_SECRET;
    public  static  String SPRING_FILE_BG_BUCKET_NAME;
    public  static  String SPRING_FILE_FILE_HOST;
 
 @Override
 public void afterPropertiesSet() throws Exception {
  SPRING_FILE_ENDPOINT = endpoint;
  SPRING_FILE_ACCESS_KEY_ID = accessKeyId;
  SPRING_FILE_ACCESS_KEY_SECRET = accessKeySecret;
  SPRING_FILE_BG_BUCKET_NAME = bg_bucketname;
  SPRING_FILE_FILE_HOST = filehost;
 } 
}

使用參數(shù):

@Slf4j
public class AliyunOSSUtil { 
 private static String endpoint=AliyunOssConstants.SPRING_FILE_ENDPOINT;
 private static String accessKeyId=AliyunOssConstants.SPRING_FILE_ACCESS_KEY_ID;
 private static String accessKeySecret=AliyunOssConstants.SPRING_FILE_ACCESS_KEY_SECRET;
 private static String bucketname=AliyunOssConstants.SPRING_FILE_BG_BUCKET_NAME;
 private static String filehost=AliyunOssConstants.SPRING_FILE_FILE_HOST; 
    // 阿里云OSS上傳文件方法
}

@Value取不到值的原因

在springboot中想獲取配置文件中的值,一般的方法為

@Value("${tag}")
private String tagValue;

但是取值時,有時這個tagvalue為NULL,可能原因有:

1.類沒有加上@Component(或者@service等)

@Component //遺漏
class TestValue{
    @Value("${tag}")
    private String tagValue;
}

2.類被new新建了實例,而沒有使用@Autowired

@Component 
class TestValue{
    @Value("${tag}")
    private String tagValue;
} 
class Test{
    ...
    TestValue testValue = new TestValue()

正確方式:

1.使用@Autowired注入

2.在controller層注值

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

相關(guān)文章

  • Spring?Boot與Redis的緩存一致性問題解決

    Spring?Boot與Redis的緩存一致性問題解決

    在使用緩存時,緩存一致性問題是一個常見的挑戰(zhàn),本文主要介紹了Spring?Boot與Redis的緩存一致性問題,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • 如何使用Java統(tǒng)計gitlab代碼行數(shù)

    如何使用Java統(tǒng)計gitlab代碼行數(shù)

    這篇文章主要介紹了如何使用Java統(tǒng)計gitlab代碼行數(shù),實現(xiàn)方式通過git腳本將所有的項目拉下來并然后通過進行代碼行數(shù)的統(tǒng)計,需要的朋友可以參考下
    2023-10-10
  • 使用Java校驗SQL語句的合法性五種解決方案

    使用Java校驗SQL語句的合法性五種解決方案

    這篇文章主要介紹了如何用java校驗SQL語句的合法性(提供五種解決方案),使用JDBC?API和JSqlParser庫、正則表達式、ANTLR解析器生成器或Apache?Calcite庫都可以實現(xiàn)校驗SQL語句的合法性,需要的朋友可以參考下
    2023-04-04
  • 簡單快速對@RequestParam聲明的參數(shù)作校驗操作

    簡單快速對@RequestParam聲明的參數(shù)作校驗操作

    這篇文章主要介紹了簡單快速對@RequestParam聲明的參數(shù)作校驗操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java?實現(xiàn)獲取指定位置后的第一個數(shù)字

    java?實現(xiàn)獲取指定位置后的第一個數(shù)字

    這篇文章主要介紹了java?實現(xiàn)獲取指定位置后的第一個數(shù)字,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Dubbo框架線程池使用介紹

    Dubbo框架線程池使用介紹

    當我們在使用dubbo的時候,是可以通過調(diào)整線程池來達到調(diào)優(yōu)的效果,我們可以在dubbo:protocol 標簽中使用用threadpool屬性選擇自己想要使用的線程池,通過threads屬性配置服務(wù)線程數(shù),queues屬性配置使用的隊列
    2022-09-09
  • 基于ComponentScan注解的掃描范圍及源碼解析

    基于ComponentScan注解的掃描范圍及源碼解析

    這篇文章主要介紹了基于ComponentScan注解的掃描范圍及源碼解析,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java基礎(chǔ)面試題之volatile詳解

    Java基礎(chǔ)面試題之volatile詳解

    Volatile可以看做是輕量級的 Synchronized,它只保證了共享變量的可見性,下面這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)面試題之volatile的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • java使用common-fileupload實現(xiàn)文件上傳

    java使用common-fileupload實現(xiàn)文件上傳

    這篇文章主要為大家詳細介紹了java使用common-fileupload實現(xiàn)文件上傳的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Java實現(xiàn)mybatis批量插入數(shù)據(jù)到Oracle

    Java實現(xiàn)mybatis批量插入數(shù)據(jù)到Oracle

    這篇文章主要為大家詳細介紹了Java實現(xiàn)mybatis批量插入數(shù)據(jù)到Oracle 的相關(guān)資料,需要的朋友可以參考下
    2016-06-06

最新評論