依賴注入是指對象之間關(guān)系的控制權(quán)由應(yīng)用代碼中轉(zhuǎn)到外部容器。Spring框架主要提供了Set注入和構(gòu)造注入兩種依賴注入方式。
在岢嵐等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站建設(shè),成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,岢嵐網(wǎng)站建設(shè)費(fèi)用合理。
1:Set注入指的就是在接受注入的類中定義一個(gè)要被注入的類型的一個(gè)set方法,并在參數(shù)中定義需要注入的元素。Set注入式一種裝配Bean屬性的直接方法,但Set注入的一個(gè)缺點(diǎn)就是它假設(shè)了所有的可變屬性都可以通過set方法訪問到,無法清晰地表示哪些屬性是必須的,哪些屬性是可選的。
2:構(gòu)造注入是在接收注入的類中定義一個(gè)構(gòu)造方法,并在構(gòu)造方法中定義需要注入的參數(shù)。構(gòu)造注入方式的優(yōu)勢是通過構(gòu)造方法來強(qiáng)制依賴關(guān)系。
下面介紹一下兩種方式的用法:
一:在Myeclipse中(筆者使用的是Myeclipse10版本)新建一個(gè)項(xiàng)目(Java project或者web project都可)
二:右鍵項(xiàng)目 - MyEclipse - Add Spring Capabilities(添加Spring支持),選擇3.0版本并添加引用核心類庫,點(diǎn)擊下一步。
三:選擇新創(chuàng)建一個(gè)spring bean 配置文件放到項(xiàng)目src目錄下。
四:點(diǎn)擊下一步,指定hibernate 配置頁,直接默認(rèn),點(diǎn)擊完成即可。
五:新建類 HelloWorld.Java
package com.xiami.spring; public class HelloWorld { private String str; /** * 默認(rèn)構(gòu)造方法 */ public HelloWorld() { } /** * 用來進(jìn)行構(gòu)造注入的構(gòu)造方法 * * @param str */ public HelloWorld(String str) { this.str = str; } /** * 用來進(jìn)行Set注入的方法 * @param str */ public void setStr(String str) { this.str = str; } /** * 輸出字符串的方法 */ public void sayHello() { System.out.println(str); } }
六:新建測試類Test.java
package com.xiami.spring; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub //載入spring配置文件 BeanFactory bFactory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml")); HelloWorld helloWorld = (HelloWorld) bFactory.getBean("helloService"); helloWorld.sayHello(); } }
七:打開applicationContext.xml文件,進(jìn)行添加bean配置
以下是兩種方式添加bean:
1:采用Set注入方式的Bean類的配置
右擊applicationContext.xml的編輯界面 - Spring - new bean 打開Bean向?qū)Т翱冢顚態(tài)ean Id(自定義命名和Test.java中g(shù)etBean("???")對應(yīng)。Bean class 選擇要注入的HelloWorld類。點(diǎn)擊Properties屬性選項(xiàng)卡,給該bean新建一個(gè)屬性。
八:在屬性向?qū)Т翱谔顚?Name 對應(yīng)HelloWorld.java中的屬性名稱,Spring Type 選擇value,type選擇String,Value 隨便填值。finish 既可。
九:保存applicationContext.xml, 添加bean后,配置文件多了紅色標(biāo)記的部分,讀者可以運(yùn)行Test.java。測試一下。發(fā)現(xiàn)hello world字符串已經(jīng)注入到了str變量上。
<?xml version="1.0" encoding="UTF-8"?>
2:采用構(gòu)造注入方式的Bean類的配置
在以上Set方式的Bean Wizard(Bean 向?qū)В┐翱?,不選擇Properties選項(xiàng)卡,變?yōu)镃onstructor Args選項(xiàng)卡。并Add 新增一個(gè)構(gòu)造參數(shù)。Index和Java Class 不用填寫。
十:在增加構(gòu)造方式bean的時(shí)候,之前第一個(gè)得先注釋或者刪除,不允許有多個(gè)id相同的bean。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。