首先我们介绍1下Spring核心开发包及其基本用处:
Spring核心开发包的基本用处
Spring Core:包括Spring框架基本的核心工具类,Spring其他组件都要使用这个包里边的类,也能够在自己的利用系统里边使用这些工具类。
Spring Beans:所有利用都要用到,包括了访问配置文件,创建和管理Bean,控制反转和依赖注入的所有类。
Spring AOP:包括了使用AOP特性时候的所有类。
Spring Context:为Spring核心提供了大量扩大,能够找到JNDI等使用时的全部类。
下面我们创建1个实例,将HelloWorld和HelloChina类分别扩大自同1个接口,接着分别实现sayHello方法,将这两个类分别注入到Person类中,在Person类中调用sayHello方法,最后再建立1个Main类,通过Main类来进行全部程序的运行。
注意:我们在配置Spring的时候,需要再单独下载commons-logging进行同时配置Jar文件,否则项目没法运行。
全部程序的结构是这样的:
下面给出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(); } }最后实现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); //加载配置文件,启动IOC容器 Person person = (Person)f.getBean("person"); //通过IOC容器获得Person类实例 String s = person.sayHello(); //通过Person类获得输出信息 System.out.println(s); } }Main类里边的main方法是全部程序的入口。
DOCTYPE 用于告知程序中使用那种规范来解析配置文件
id属性是BeanFactory中的唯1标识,代码中BeanFactory通过这个id来索引获得(getBean方法)相应的JavaBean实例。
<beans>....</beans>是根节点,里边包括了1些bean节点(即为JavaBean),通过properity属性将1个类注入到这个类里边。
<?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类中。
最后我们在Main.java中右击选择Run As->Java Application,不同的注入可以得到不同的结果: