多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Spring學習總結(1.2)-依賴注入及配置了解

Spring學習總結(1.2)-依賴注入及配置了解

來源:程序員人生   發布時間:2015-05-27 08:28:41 閱讀次數:3950次
    前面的博客大概的講了1下IOC容器的理解,那末IOC的實現實際上依托于依賴注入的。簡單的說就是IOC是1種思想,而依賴注入為這類思想提供了實現。個人是這么理解的。本篇博客介紹兩種經常使用的注入方式,和他們的配置(基于XML)。

IOC容器說明

  從最近的學習來看,特別是基于XML的配置情勢下。IOC容器就是1個生產線,它根據配置中類之間的持有關系,1個部件1個部件的組裝成1個完全的產品去履行1個完全的任務。從使用者的方向上看,他只能看到1個入口,而以后的處理他是不知道的。固然,這在沒有容器的概念的時候也是1樣的。不1樣的地方在于,容器是1個裝配者只有它知道各個部份之間的關系,它負責將各個部份組合成1個完全的產品。大概是這么個意思:

依賴注入

    前面說過控制反轉,反轉的是創建被調用者的功能被反轉了,交給了IOC容器去處理。依賴注入是甚么呢?它就是IOC將被調用者提供給調用者的途徑。在運行的時候無需調用者自己創建被動用者,而是IOC容器像打針1樣將被調用者注入到調用者中去。那末最經常使用的注入方式有兩種:setter方法注入和構造函數注入。

setter方法

   即通過set方法注入Bean的屬性值或依賴對象。這類方式注入需要提供1個默許的不帶參數構造函數。如果沒有構造函數,JVM默許提供1個默許的無參構造函數。當自己寫了構造函數時,由于JVM不再提供默許的構造函數,因此需要自己寫1個不帶參數的構造函數。否則拋出異常。

Car類

public class Car { private String company; private String brand; private int maxSpeed; private float price; public void setBrand(String brand){ this.brand = brand; } public void setMaxSpeed(int maxSpeed){ this.maxSpeed = maxSpeed; } public void setPrice(double price){ this.price = price; } public void setCompany(String company){ this.company = company; } }

配置

<bean id = "car" class="com.tgb.spring.car"> <property name ="brand"><value>迷你</value></property> <property name ="company"><value>寶馬</value></property> <property name ="price"><value>220000</value></property> <property name ="maxSpeed"><value>200</value></property> </bean>
    這類方式配置靈活簡單,以上也能看出來。這里還需要提1點,通過set方法注入時Spring只會檢查bean中是不是存在對應的set方法而不會檢查是不是存在對應的變量。只是,良好的習慣起見,通常都定義變量。

構造函數

    通過構造函數的方式設置屬性的值和依賴對象是除set方法以為比較經常使用的方式了。這里需要提供有參數的構造函數。

car類

public class Car { private String company; private String brand; private int maxSpeed; private float price; public Car(String company, String brand, float price) { super(); this.company = company; this.brand = brand; this.price = price; } public Car(String company, String brand, int maxSpeed) { super(); this.company = company; this.brand = brand; this.maxSpeed = maxSpeed; } public Car(String company, String brand, int maxSpeed, float price) { super(); this.company = company; this.brand = brand; this.maxSpeed = maxSpeed; this.price = price; } }

配置

<bean id="car" class="com.atguigu.spring.helloworld.Car"> <constructor-arg value="KUGA" index="1"></constructor-arg> <constructor-arg value="ChangAnFord" index="0"></constructor-arg> <constructor-arg value="250000" type="float"></constructor-arg> </bean>
   這里首先大家注意到bean中有3個帶參數的構造函數,另外1個需要注意的地方是配置中引入了index和type兩個標簽。這里通過你配置的參數個數、參數順序、參數類型來精肯定位你要使用的是哪個構造函數。這個自己體會1下。

其他

    spring提供的配置功能是比較豐富的,處理基本的這些配置以外還有像,內部bean配置、自動裝配等1些有趣的配置。
        
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 日本理论在线观看被窝网 | 精品精品| 看毛片网站 | 俄罗斯free性欧美hd | 亚洲综合日韩中文字幕v在线 | 日韩免费观看一级毛片看看 | 国产精品第二页 | 国产成人综合亚洲欧美天堂 | 91亚洲在线| 欧美16一17sex性hd | 国产精品福利片免费看 | 91麻豆精品国产综合久久久 | 欧美疯狂 | 亚洲伊人久久精品 | 日韩欧美印度一级毛片 | 毛片网此| 国产精品免费aⅴ片在线观看 | 一级做a爰性色毛片 | 欧美一区二区三区东南亚 | 国产亚洲欧美日韩俺去了 | 欧美一级毛片欧美一级成人毛片 | 国产精品亚洲一区二区三区 | 中国欧美一级毛片免费 | 亚洲色图校园春色 | 国产精品久久久久久久久久久久 | 久久天天躁狠狠躁夜夜 | 亚洲人成图片欧美人成图片 | 春色视频免费版高清在线观看 | 中文字幕在线亚洲 | 亚州色图欧美色图 | 亚洲黄色在线看 | 亚洲乱仑| 福利视频99 | 亚洲国产欧洲精品路线久久 | 99热久久精品最新 | 91福利片| 免费在线一区二区三区 | 国产主播福利 | 性xxxx黑人与亚洲 | 国产精品一区91 | 国产在线日本 |