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

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

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

@Value注解

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

image-20220212232240207

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

1. 注入普通屬性

@Value注解可以注入一些字段的普通屬性,并且會(huì)自動(dòng)進(jìn)行類型轉(zhuǎn)換

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 { }

測(cè)試一下:

@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

測(cè)試代碼和上面一樣我們輸出下結(jié)果:

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

3. 注入表達(dá)式并運(yùn)算

image-20220212234040749

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

栗子:

例如我想動(dòng)態(tài)獲得運(yùn)行機(jī)器的核心數(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方法
}

測(cè)試用例和配置類不變,我們輸出一下結(jié)果:

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

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

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

image-20220212235845224

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

相關(guān)文章

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

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

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

    Java基礎(chǔ)之MapReduce框架總結(jié)與擴(kuò)展知識(shí)點(diǎn)

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

    詳細(xì)聊一聊Java中的包機(jī)制

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

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

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

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

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

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

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

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

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

    Spring Security OAuth 個(gè)性化token的使用

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

    解析java中This的用法分析

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

    java算法之二分查找法的實(shí)例詳解

    這篇文章主要介紹了java算法之二分查找法的實(shí)例詳解的相關(guān)資料,這里提供簡(jiǎn)單實(shí)例幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08

最新評(píng)論

乌海市| 龙海市| 房产| 白玉县| 平武县| 江门市| 深州市| 大竹县| 丰台区| 合水县| 凌源市| 海南省| 柘荣县| 子洲县| 四会市| 大洼县| 罗定市| 文水县| 哈尔滨市| 思茅市| 二连浩特市| 勃利县| 绵阳市| 临沧市| 察隅县| 牙克石市| 祥云县| 福贡县| 惠东县| 闽侯县| 庆元县| 济南市| 阿拉善盟| 临汾市| 中卫市| 资阳市| 阜南县| 泾源县| 宣恩县| 湟源县| 辉县市|