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)实体类代码:
(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);
测试结果:
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="三角龙"
/>
上一篇: 【bzoj4773】负环 倍增Floyd
下一篇: 揭秘:三国时期的凉州在现在的哪个地方呢?
推荐阅读
-
02Spring基于xml的IOC配置--实例化Bean的三种方式
-
Spring5 - Bean的初始化和销毁的4种方式
-
Spring Bean的实例化之属性注入源码剖析过程
-
Spring中bean的初始化和销毁几种实现方式详解
-
Spring实例化Bean的五种方式
-
聊聊spring之bean对象的实例化过程
-
spring配置文件(spring的开发步骤;bean中的scope,init-method,destroy-method;bean的工厂静态方法实例化;工厂动态方法实例化)
-
对象实例化的方式有哪些?
-
Spring之bean的实例化和依赖注入
-
Spring | IOC之Bean的三种实例化