Spring入门实例
2006-09-10 09:03
411 查看
Spring模块化是很强的,各个功能模块都是独立的,其中IoC就是用XML来定义生成一个对象的模式.
Bean可重用软件组件,将它们组合起来使用可创建出对象
Java Bean也就是一个Java的类.
例:
一个Human接口
public interface Human
{
void eat();
void walk();
}
一个中国人的类
public class Chinese implements Human
{
public void eat()
{
System.out.println(“rice”);
}
public void walk()
{
System.out.println(“walk”);
}
}
一个美国人的类
public class American implements Human
{
public void eat()
{
System.out.println(“bread”);
}
public void walk()
{
System.out.println(“car”);
}
}
对上述创建一个工厂类Factory
public class Factory
{
public final static String CHINESE = "Chinese";
public final static String AMERICAN = "American";
pbulic Human getHuman(String ethnic)
{
if(ethnic.equals(CHINESE))
{
return new Chinese();
}
else
{
if(ethic.equals(AMERICAN))
{
return new American();
}
else
{
throw new Exception("参数错误!");
}
}
}
}
下面是一个测试程序,使用工厂方法得到不同的对象,并执行相应的方法
public class MainClass
{
public static void main(String [] args)
{
Human human = null;
human = new Factory.getHuman(Factory.CHINESE);
human.eat();
human.walk();
human = new Factory.getHuman(Factory.AMERICAN);
human.eat();
human.walk();
}
}
采用Spring的IOC的用法如下
所谓IOC就是一个用xml来定义生成对象的模式.
创建一个applicationcontext.xml文件
[align=left]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">[/align]
<beans>
<bean id="China" class="Chinese" />
<bean id="USA" class="American" />
</beans>
修改MainClass程序如下
public class MainClass
{
public static void main(String [] args)
{
/*Human human = null;
human = new Factory.getHuman(Factory.CHINESE);
human.eat();
human.walk();
human = new Factory.getHuman(Factory.AMERICAN);
human.eat();
human.walk();*/
BeanFactory bf= new XmlBeanFactory(new ClassPathResource("/applicationcontext.xml"));
Human human = null;
human = (Human)bf.getBean(China);
human.eat();
human.walk();
human = (Human)bf.getBean(UsSA);
human.eat();
human.walk();
}
}
上述程序表明,bf就相当于原来的Factory工厂
<bean id="China” class=”Chinese” />
id就是bf.getBean的参数值,一个字符串, class就是一个类(包名+类名)然后,获得Chinese对象 human = (Object) bf.getBean(China);
因为getBean方法返回一个Object类型,所以前面要加一个类型转换. 如果需要获得哪个类,只要将class属性更改一下 而前一种Factory模式则要修改Factory类里的方法并重新编译运行.
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>
<bean id="China" class=" Chinese" singleton="true">
<property name="humenName">
<value>ZhangSan</value>
</property>
</bean>
&l
8d57
t; bean id="USA" class=" American"/>
</beans>
假设Chinese里有一个humanName属性,此时生成Chinese对象时,ZhangSan这个值将自动设置到humanName属性中,而且由于sinaleton=true 这时生成的Chinese对象将采用单例模式,系统将仅生成一个Chinese对象实例.装配属性后将去instancOf判断Chinese是否是实现了FactoryBean的一个子类,如不是直接返回一个对象,如果是将调用FactoryBean的getObject方法返回一个对象
Bean可重用软件组件,将它们组合起来使用可创建出对象
Java Bean也就是一个Java的类.
例:
一个Human接口
public interface Human
{
void eat();
void walk();
}
一个中国人的类
public class Chinese implements Human
{
public void eat()
{
System.out.println(“rice”);
}
public void walk()
{
System.out.println(“walk”);
}
}
一个美国人的类
public class American implements Human
{
public void eat()
{
System.out.println(“bread”);
}
public void walk()
{
System.out.println(“car”);
}
}
对上述创建一个工厂类Factory
public class Factory
{
public final static String CHINESE = "Chinese";
public final static String AMERICAN = "American";
pbulic Human getHuman(String ethnic)
{
if(ethnic.equals(CHINESE))
{
return new Chinese();
}
else
{
if(ethic.equals(AMERICAN))
{
return new American();
}
else
{
throw new Exception("参数错误!");
}
}
}
}
下面是一个测试程序,使用工厂方法得到不同的对象,并执行相应的方法
public class MainClass
{
public static void main(String [] args)
{
Human human = null;
human = new Factory.getHuman(Factory.CHINESE);
human.eat();
human.walk();
human = new Factory.getHuman(Factory.AMERICAN);
human.eat();
human.walk();
}
}
采用Spring的IOC的用法如下
所谓IOC就是一个用xml来定义生成对象的模式.
创建一个applicationcontext.xml文件
[align=left]<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">[/align]
<beans>
<bean id="China" class="Chinese" />
<bean id="USA" class="American" />
</beans>
修改MainClass程序如下
public class MainClass
{
public static void main(String [] args)
{
/*Human human = null;
human = new Factory.getHuman(Factory.CHINESE);
human.eat();
human.walk();
human = new Factory.getHuman(Factory.AMERICAN);
human.eat();
human.walk();*/
BeanFactory bf= new XmlBeanFactory(new ClassPathResource("/applicationcontext.xml"));
Human human = null;
human = (Human)bf.getBean(China);
human.eat();
human.walk();
human = (Human)bf.getBean(UsSA);
human.eat();
human.walk();
}
}
上述程序表明,bf就相当于原来的Factory工厂
<bean id="China” class=”Chinese” />
id就是bf.getBean的参数值,一个字符串, class就是一个类(包名+类名)然后,获得Chinese对象 human = (Object) bf.getBean(China);
因为getBean方法返回一个Object类型,所以前面要加一个类型转换. 如果需要获得哪个类,只要将class属性更改一下 而前一种Factory模式则要修改Factory类里的方法并重新编译运行.
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>
<bean id="China" class=" Chinese" singleton="true">
<property name="humenName">
<value>ZhangSan</value>
</property>
</bean>
&l
8d57
t; bean id="USA" class=" American"/>
</beans>
假设Chinese里有一个humanName属性,此时生成Chinese对象时,ZhangSan这个值将自动设置到humanName属性中,而且由于sinaleton=true 这时生成的Chinese对象将采用单例模式,系统将仅生成一个Chinese对象实例.装配属性后将去instancOf判断Chinese是否是实现了FactoryBean的一个子类,如不是直接返回一个对象,如果是将调用FactoryBean的getObject方法返回一个对象
相关文章推荐
- spring-boot入门实例
- Spring之入门实例
- Spring Hiberate 入门实例
- struct hibernate spring 经典框架 搭建 入门实例
- 一个SpringData JPA入门实例
- Spring AOP @AspectJ 入门实例
- SpringMVC+Hibernate 入门实例
- Spring-MVC入门(一):入门实例
- Spring入门实例
- Spring AOP @AspectJ 入门实例
- Eclipse安装springsource-tool-suite插件及spring helloworld入门实例
- 【Spring学习03】Spring简单入门实例
- Spring与Hibernate整合入门实例
- Spring中IoC的入门实例
- 【转】Redis入门实例-Spring+Redis
- Spring AOP入门实例详解
- Spring入门实例
- Spring中IoC的入门实例
- 第二章 Spring中IoC的入门实例
- Spring入门1. IoC入门实例