spring 執行時值注入

2022-08-04 19:45:19 字數 1207 閱讀 9379

在專案中經常使用連線資料庫的配置,如下所示

class="org.apache.commons.dbcp.basicdatasource">

每個屬性都是硬編碼,有時候我們希望避免硬編碼,而是想讓這些值在執行時候再確定。spring提供了兩種在執行時求值的方式:屬性佔位符和spring表示式語言

1、屬性佔位符:使用$包裝屬性名稱

a、引入properties檔案

test.properties檔案內容

jdbc.driver=oracle.jdbc.driver.oracledriver

jdbc.url=jdbc:oracle:thin:@db.dev.cc.cmbc.com.cn:1521:testdb

jdbc.username=testdbuser

jdbc.password=123456

b、避免硬編碼的配置:

class="org.apache.commons.dbcp.basicdatasource">

也可以通過註解的方式避免硬編碼:

package

com.cn.pojo;

import

org.springframework.beans.factory.annotation.value;

import

org.springframework.stereotype.component;

@component

public

class

jdbcutil

2、spring表示式:使用#包含spel表示式

a、使用bean的id引用bean

#b、呼叫方法和訪問物件的屬性

#  #  對於bean方法的方法返回值,也可以呼叫方法 # ,如果person1.getcar()返回為null,則會丟擲空指標異常,spring提供了型別安全的運算子"?.", # 如果person.getcar()不為空,則呼叫getcarname()獲取返回值,否則,返回null

#  在表示式中使用型別呼叫靜態屬性和方法,必須使用t()運算子

#c、對值進行算術、關係、邏輯運算##

# 三元運算通常用於判null

# 當「+」運算子的運算元有字串時,執行的是連線操作

d、集合操作 略

Spring執行時值注入分析

bean裝配一方面是將另外乙個bean引用注入到另外乙個bean鐘,另外乙個方面是將乙個值注入到bean的屬性或者構器引數中。在注入值時,我們可能會希望避免硬編碼,而是希望這些值在執行時再確定。為了實現這些功能,spring提供了兩種在執行時求值的方式。分別是屬性佔位符和spring表示式語言。在s...

Spring執行時注入

1.從屬性檔案中讀取到environment中,再注入。public class superman implements person public string getname configuration componentscan com.kai.vo public class configur...

Spring執行時候值注入

像這種直接輸入值得方式叫做硬編碼,我們要避免硬編碼值,這時候如果我們想這些書名和作者名在執行時候再確認。novel類的構造方法裡面的兩個形參分為書名和作者名 bean public book firstbook 使用 propertysource註解和environment 引用了類路徑hj.pro...