欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring2.2——实例化Bean的3种方式

程序员文章站 2022-05-22 15:05:58
...

 1、调用该Bean的实现类的构造器。

<bean id="dog" class="cony.domain.Dog"/>

2、调用工厂类的静态工厂方法。
        factory-method:指定工厂方法的名字
        class:指定工厂类的类名。
        如果工厂方法要参数,请使用<constructor-arg.../>来传入参数。

eg:

(1)实体类代码:

Spring2.2——实例化Bean的3种方式


Spring2.2——实例化Bean的3种方式

(2)工厂类代码:

public class DogFactory {
        //静态工厂方法
	public static Dog getDog(String arg){
		
		if(arg.equalsIgnoreCase("puppy")){
			return new Puppy();
		}else{
			return new Dinosaur();
		}
		
	}
}
(3)beans.xml

	<!-- factory-method:指定工厂方法的名字
	dog = cony.domain.DogFactory.getDog("puppy");
	 -->
	<bean id="dog" class="cony.domain.DogFactory"
		factory-method="getDog"
		c:_0="puppy"
		p:kind="吉娃娃"
	/>

(4)测试

		ApplicationContext appContext = new ClassPathXmlApplicationContext("beans.xml");
		Dog user = appContext.getBean("dog",Dog.class);
		System.out.println(user);

测试结果:

Spring2.2——实例化Bean的3种方式

3、调用实例工厂的实例工厂方法。
        factory-method:指定工厂方法的名字
        factory-bean:指定工厂的对象。

        如果工厂方法要参数,请使用<constructor-arg.../>来传入参数。

(1)工厂类

public class DogFactory {

	public  Dog getDog(String arg){
		
		if(arg.equalsIgnoreCase("puppy")){
			return new Puppy();
		}else{
			return new Dinosaur();
		}
		
	}
}
(2)beans.xml配置

	<!--
		建立工厂实例
		dogFactory = new cony.domain.DogFactory();
	 -->
	<bean id="dogFactory" class="cony.domain.DogFactory"/>
	
	<!-- factory-method:指定工厂方法的名字
		dog = dogFactory.getDog("puppy");
	 -->
	<bean id="dog" factory-bean="dogFactory"
		factory-method="getDog"
		c:_0="dinosaur"
		p:kind="三角龙"
	/>