在專案中經常使用連線資料庫的配置,如下所示
class="org.apache.commons.dbcp.basicdatasource">
每個屬性都是硬編碼,有時候我們希望避免硬編碼,而是想讓這些值在執行時候再確定。spring提供了兩種在執行時求值的方式:屬性佔位符和spring表示式語言
1、屬性佔位符:使用$包裝屬性名稱
a、引入properties檔案
test.properties檔案內容
jdbc.driver=oracle.jdbc.driver.oracledriverjdbc.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">
也可以通過註解的方式避免硬編碼:
packagecom.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...