Spring中的IOC原理

來源:互聯網
上載者:User

IOC通俗的講就是面向介面編程。
1,定義兩個介面,類如下:
package com.svse.spring.ioc;
//墨水類型
public interface Ink {
public String getColor();
}

//紙張類型
package com.svse.spring.ioc;

public interface Paper {
public String getSize();
}
他們的具體實作類別如下:
//藍色墨水
package com.svse.spring.ioc;

public class BlueInk implements Ink {

public String getColor() {
return "藍色";
}

}
//紅色墨水
package com.svse.spring.ioc;

public class RedInk implements Ink {

public String getColor() {
return "紅色";
}

}

//A4紙
package com.svse.spring.ioc;

public class A4 implements Paper {

public String getSize() {
return "a4";
}

}

//A5紙
package com.svse.spring.ioc;

public class A5 implements Paper {

public String getSize() {
return "a5";
}

}

//A6紙
package com.svse.spring.ioc;

public class A6 implements Paper {

public String getSize() {
return "a6";
}

}

2,用什麼樣的墨水和紙張列印類:
package com.svse.spring.ioc;

public class Printer {
private Ink ink = null;
private Paper paper = null;

public Ink getInk() {
return ink;
}
public void setInk(Ink ink) {
this.ink = ink;
}
public Paper getPaper() {
return paper;
}
public void setPaper(Paper paper) {
this.paper = paper;
}

public void print(String content)
{   
System.out.println("[" + ink.getColor() +"]" +"["+ paper.getSize() +"]" + content);
}
}

3,在所建工程中添加spring-core.jar、 spring-beans.jar 、spring-context.jar包
在applicationContext.xml檔案中對上面的具體實作類別進行裝配:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 定義Paper -->
<bean id="a4" class="com.svse.spring.ioc.A4"></bean>
<bean id="a5" class="com.svse.spring.ioc.A5"></bean>
<bean id="a6" class="com.svse.spring.ioc.A6"></bean>

<!-- 定義墨盒 -->
<bean id="redInk" class="com.svse.spring.ioc.RedInk"></bean>
<bean id="blueInk" class="com.svse.spring.ioc.BlueInk"></bean>

<!-- 定義印表機(組裝印表機) -->
<bean id="printer" class="com.svse.spring.ioc.Printer">
<property name="ink" ref="blueInk"></property>
<property name="paper" ref="a6" ></property>
</bean>
</beans>

4,測試ioc
package com.svse.spring.ioc;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class IOCMain {

/**
* @測試
*/
public static void main(String[] args) {
ApplicationContext context =
new ClassPathXmlApplicationContext("applicationContext.xml");
Printer printer = (Printer)context.getBean("printer");
printer.print("Welcome 2 spring framework.");
}
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.