首先我們介紹1下Spring核心開發(fā)包及其基本用處:
Spring核心開發(fā)包的基本用處
Spring Core:包括Spring框架基本的核心工具類,Spring其他組件都要使用這個(gè)包里邊的類,也能夠在自己的利用系統(tǒng)里邊使用這些工具類。
Spring Beans:所有利用都要用到,包括了訪問配置文件,創(chuàng)建和管理Bean,控制反轉(zhuǎn)和依賴注入的所有類。
Spring AOP:包括了使用AOP特性時(shí)候的所有類。
Spring Context:為Spring核心提供了大量擴(kuò)大,能夠找到JNDI等使用時(shí)的全部類。
下面我們創(chuàng)建1個(gè)實(shí)例,將HelloWorld和HelloChina類分別擴(kuò)大自同1個(gè)接口,接著分別實(shí)現(xiàn)sayHello方法,將這兩個(gè)類分別注入到Person類中,在Person類中調(diào)用sayHello方法,最后再建立1個(gè)Main類,通過Main類來進(jìn)行全部程序的運(yùn)行。
注意:我們?cè)谂渲肧pring的時(shí)候,需要再單獨(dú)下載commons-logging進(jìn)行同時(shí)配置Jar文件,否則項(xiàng)目沒法運(yùn)行。
全部程序的結(jié)構(gòu)是這樣的:
下面給出IHelloMessage代碼:
package com.nofaker.spring.chapter01; public interface IHelloMessage { public String sayHello(); }
package com.nofaker.spring.chapter01; public class HelloChina implements IHelloMessage { @Override public String sayHello() { return "大家好"; } }
package com.nofaker.spring.chapter01; public class HelloWorld implements IHelloMessage { @Override public String sayHello() { return "Hello World!"; } }下面我們建立Person類:
package com.nofaker.spring.chapter01; public class Person { private IHelloMessage helloMessage; public IHelloMessage getHelloMessage() { return helloMessage; } public void setHelloMessage(IHelloMessage helloMessage) { this.helloMessage = helloMessage; } public String sayHello() { return this.helloMessage.sayHello(); } }最后實(shí)現(xiàn)Main類:
package com.nofaker.spring.chapter01; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.Resource; public class Main { public static void main(String[] args) { Resource r = new FileSystemResource("helloMessage.xml"); //通過FileSystemResource獲得xml配置文件 BeanFactory f = new XmlBeanFactory(r); //加載配置文件,啟動(dòng)IOC容器 Person person = (Person)f.getBean("person"); //通過IOC容器獲得Person類實(shí)例 String s = person.sayHello(); //通過Person類獲得輸出信息 System.out.println(s); } }Main類里邊的main方法是全部程序的入口。
DOCTYPE 用于告知程序中使用那種規(guī)范來解析配置文件
id屬性是BeanFactory中的唯1標(biāo)識(shí),代碼中BeanFactory通過這個(gè)id來索引獲得(getBean方法)相應(yīng)的JavaBean實(shí)例。
<beans>....</beans>是根節(jié)點(diǎn),里邊包括了1些bean節(jié)點(diǎn)(即為JavaBean),通過properity屬性將1個(gè)類注入到這個(gè)類里邊。
<?xml version="1.0" encoding="UTF⑻"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="helloWorld" class="com.nofaker.spring.chapter01.HelloWorld"></bean> <bean id="helloChina" class="com.nofaker.spring.chapter01.HelloChina"></bean> <bean id="person" class="com.nofaker.spring.chapter01.Person"> <property name="helloMessage" ref="helloChina"/> </bean> </beans>通過修改ref的值,即可以將不同的類注入到person類中。
最后我們?cè)贛ain.java中右擊選擇Run As->Java Application,不同的注入可以得到不同的結(jié)果: