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

Spring中@Value注解的三種使用方式詳解

 更新時間:2023年08月04日 10:45:17   作者:每天都要加油呀!  
這篇文章主要介紹了Spring中@Value注解的三種使用方式詳解,文章通過示例代碼非常詳細地介紹,對于每個人的學習或工作都有一定的學習價值,需要的朋友可以參考下

@Value注解

@Value的作用是什么?我們可以從 Spring官方文檔里面找到這樣的一句話:

image-20220212232240207

接下來我們看下@Value注入外部屬性的三種方式:

1. 注入普通屬性

@Value注解可以注入一些字段的普通屬性,并且會自動進行類型轉換

image-20220212233940485

栗子:

@Repository
public class ConnectionPool {
    @Value("jdbc:mysql://localhost:3306/test")
    private String url;
    @Value("com.mysql.jdbc.Driver")
    private String driveName;
    @Value("Scott")
    private String userName;
    @Value("10")
    private int no;
    //重寫下toString方法
}

定義配置類,用于掃描bean

@Configuration
@ComponentScan("com.fx.dao")
public class myConfig2 { }

測試一下:

@Test
public void test01(){
    ApplicationContext context = new AnnotationConfigApplicationContext(myConfig2.class);
    ConnectionPool connectionPool = context.getBean("connectionPool", ConnectionPool.class);
    System.out.println(connectionPool.toString());
}

輸出:

ConnectionPool{url='jdbc:mysql://localhost:3306/test', driveName='com.mysql.jdbc.Driver', userName='Scott',no=10}

2.注入配置文件

可以通過@Value("${}")來注入配置文件里面的信息

栗子:

@Repository
public class ConnectionPool {
    @Value("jdbc:mysql://localhost:3306/test")
    private String url;
    @Value("com.mysql.jdbc.Driver")
    private String driveName;
    @Value("Scott")
    private String userName;
    @Value("10")
    private int no;
    @Value("${mysql.pwd}")
    //重寫下toString方法
}

修改下配置類,掃描配置文件:

@Configuration
@ComponentScan("com.fx.dao")
@PropertySource({"classpath:db.properties"})
public class myConfig2 { }

db.properties配置文件放在resources目錄下,使用@PropertySource注解掃描的classpath就是此路徑

mysql.pwd=123456

測試代碼和上面一樣我們輸出下結果:

ConnectionPool{url='jdbc:mysql://localhost:3306/test', driveName='com.mysql.jdbc.Driver', userName='Scott', no=10, pwd='123456'}

3. 注入表達式并運算

image-20220212234040749

SpEl(Spring Expression Language ),是Spring的表達式語言,很多框架中都有自己的El表達式,Spring中El表達式支持的功能有很多,在官方文檔里面有詳細的介紹和用例。

栗子:

例如我想動態(tài)獲得運行機器的核心數(shù)作為參數(shù)注入

@Repository
public class ConnectionPool {
    @Value("jdbc:mysql://localhost:3306/test")
    private String url;
    @Value("com.mysql.jdbc.Driver")
    private String driveName;
    @Value("Scott")
    private String userName;
    @Value("10")
    private int no;
    @Value("${mysql.pwd}")
    private String pwd;
    @Value("#{T(java.lang.Runtime).getRuntime().availableProcessors()}")
    private int minCons;
    @Value("#{T(java.lang.Runtime).getRuntime().availableProcessors() * 2}")
    private int maxCons;
    //toString方法
}

測試用例和配置類不變,我們輸出一下結果:

ConnectionPool{url='jdbc:mysql://localhost:3306/test', driveName='com.mysql.jdbc.Driver', userName='Scott', no=10, pwd='123456', minCons=8, maxCons=16}

可以看到SpEl里執(zhí)行了我們想要運行的代碼

當然我們還可以用@Value執(zhí)行更多更厲害的EL表達式,官方文檔

image-20220212235845224

到此這篇關于Spring中@Value注解的三種使用方式詳解的文章就介紹到這了,更多相關Spring中@Value注解內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • java實現(xiàn)在原有日期時間上加幾個月或幾天

    java實現(xiàn)在原有日期時間上加幾個月或幾天

    這篇文章主要介紹了java實現(xiàn)在原有日期時間上加幾個月或幾天,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java基礎之MapReduce框架總結與擴展知識點

    Java基礎之MapReduce框架總結與擴展知識點

    本章,是MapReduce的最終章,我在寫本章的時候,發(fā)現(xiàn)前面忘記介紹MpaTask與ReduceTask了,所以本章補上哈,另外還有兩個擴展的知識點,講完這些,我會對整個MapReduce進行總結一下,讓大家再次了解MapReduce的工作流程,更加清晰地認識MapReduce ,需要的朋友可以參考下
    2021-05-05
  • 詳細聊一聊Java中的包機制

    詳細聊一聊Java中的包機制

    這篇文章主要介紹了Java中包機制的相關資料,Java包機制通過定義、命名和組織類,防止命名沖突,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-05-05
  • NIO深入理解FileChannel使用方法原理

    NIO深入理解FileChannel使用方法原理

    這篇文章主要為大家介紹了NIO深入理解FileChannel的源碼示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • 異常排查記錄amqp協(xié)議鏈接陷阱

    異常排查記錄amqp協(xié)議鏈接陷阱

    這篇文章主要介紹了一次關于amqp協(xié)議鏈接陷阱-An?unexpected?connection?driver?error?occured的異常排查記錄,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-02-02
  • SpringBoot中整合Minio文件存儲的安裝部署過程

    SpringBoot中整合Minio文件存儲的安裝部署過程

    這篇文章主要介紹了SpringBoot整合Minio文件存儲的相關知識,詳細介紹了Minio安裝部署過程,需要的朋友可以參考下
    2022-04-04
  • Java中的異步非阻塞AIO模型詳解

    Java中的異步非阻塞AIO模型詳解

    這篇文章主要介紹了Java中的異步非阻塞AIO模型詳解,AIO需要操作系統(tǒng)的支持,在linux內核2.6版本中加入了對真正異步IO的支持,java從jdk1.7開始支持AIO,本文提供了部分實現(xiàn)代碼,需要的朋友可以參考下
    2023-09-09
  • Spring Security OAuth 個性化token的使用

    Spring Security OAuth 個性化token的使用

    這篇文章主要介紹了Spring Security OAuth 個性化token的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • 解析java中This的用法分析

    解析java中This的用法分析

    本篇文章是對java中This的用法進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • java算法之二分查找法的實例詳解

    java算法之二分查找法的實例詳解

    這篇文章主要介紹了java算法之二分查找法的實例詳解的相關資料,這里提供簡單實例幫助大家學習理解這部分內容,需要的朋友可以參考下
    2017-08-08

最新評論

治县。| 乌拉特前旗| 天镇县| 安义县| 略阳县| 特克斯县| 株洲县| 信宜市| 永州市| 平远县| 新干县| 故城县| 金塔县| 朝阳县| 勐海县| 定结县| 大埔县| 太原市| 普安县| 大连市| 彭州市| 济宁市| 嘉禾县| 和硕县| 金门县| 蒙自县| 蛟河市| 闻喜县| 大埔区| 涡阳县| 蕲春县| 伊吾县| 会同县| 宝鸡市| 汽车| 宣汉县| 长春市| 漳平市| 永兴县| 禄丰县| 彩票|