Spring 可以取代工厂,
主要功能:1、取代工厂2、所有的工厂在资源文件(XXX.xml)中进行管理。
由此可见Spring 是一个大的工厂。
客户端代码,只要知道:
ApplicationContext context=null;
context=new ClassPathXmlApplicationContext("applicationContext.xml");
通过context取得ID.这里的ID是f.
fruit f=(fruit) context.getBean("f");
所有的代码的设计重要性变为接口:Spring中主要就是接口的设计.
-------------------------------------------------------------------------------------------------------
例子;
定义接口:fruit.java
package aa;
public interface fruit {
public void eat();
}
--------------------------------------------------------------------------------------------------------------
定义实现接口的两个子类:Apple.java orange.java
package aa;
public class Apple implements fruit {
public void eat() {
System.out.println("苹果");
}
}
package aa;
public class orange implements fruit{
public void eat() {
System.out.println("aaa");
}
}
-------------------------------------------------------------------------------------------------------------
配制文件:applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="f" class="aa.Apple"></bean>//只要将Apple修改为orange,就 //可得到orange水果.
</beans>
--------------------------------------------------------------------------------------
测试类:Test2.java
package aa;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test2 {
public static void main(String[] args){
ApplicationContext context=null;
context=new ClassPathXmlApplicationContext("applicationContext.xml");
fruit f=(fruit) context.getBean("f");
f.eat();
}
}
---------------------------------------------------------------------------------------------
好处:只要修改:配制文件就可以得到不同的水果.不管有多少个接口通过在配制文件中的注册,能方便管理.
--------------------------------------------------------------------------------------------
Spring的主要功能:
管理HIBERNATE 以及事务.