Spring三种实例化Bean的方式
程序员文章站
2022-05-22 13:58:07
...
第一种方法:直接配置Bean
<bena id="所需要实例化的一个实例名称" class="包名.类名"/>
例如:
配置文件中的bean.XML代码:
<bean id="userA" class="com.test.User"/>
package com.test
public class User{
public void test(){
System.out.println("HelloWorld");
}
}
第二种方法:简单工厂创建Bean
<bena id="所需要实例化的一个实例名称" class="包名.类名" factory-mathod="该类创建实例的方法名"/>
通过使用简单工厂的静态方法进行创建:
例如:
<bean id="userA" class="com.test.MyFactory" factory-mathod="getInstance"/>
package com.test
public class MyFactory{
public static User getInstance(){
return new User();
}
}
第三种方法:抽象工厂方法创建Bean
<bena id="所需要实例化的一个工厂实例名称" class="包名.工厂类类名"/> <bean id="所需要创建的实例名" factory-bean="用来创建实例的工厂实例名" factory-mathod="工厂实例中用于创建实例的方法名"/>
这种方法要先创建工厂实例,再通过调用工厂实例的方法来创建所需要的实例。
例如:
<bean id="userFactory" class="com.test.CreateFactory"/> <bean id="userA" factory-bean="userFactory" factory-mathod="getInstance"/>
package com.test
public class CreateFactory{
public User getIntance(){
return new User();
}
}
在大多数情况下我们用的都是第一种方式,另外要注意的是:如果实例名存在特殊字符("/"等字符),那么就不能用id来标识实例名,
而要用name属性来标识。