Spring中bean实例化的三种方式:默认构造、静态工厂、实例工厂
程序员文章站
2022-03-03 11:24:48
...
1. 默认构造方式:必须提供默认构造
<bean id="bean id" class="工厂全限定类名"></bean>
以Studnet类为例
public class Student {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
applicationContext.xml配置
<bean id="Student" class="com.wuwl.entity.Student">
<property name="id" value="520"></property>
<property name="name" value="tom"></property>
<property name="age" value="13"></property>
</bean>
测试方法
public static void testStudent() {
ApplicationContext ac =new ClassPathXmlApplicationContext("applicationContext.xml");
Student student = ac.getBean("Student", Student.class);
System.out.println(student);
}
2. 静态工厂:常用于spring整合其他框架(工具),所有方法必须是static
<bean id="bean id" class="工厂全限定类名" factory-method="静态方法"></bean>
applicationContext.xml配置
<bean id="Student2" class="com.wuwl.entity.StudentStaticFactory" factory-method="getStudent">
<!--**如果在此处不加上属性或对象,所有属性均为默认值,及时在对应的Student的bean中已经配置过了**-->
<property name="id" value="520"></property>
<property name="name" value="tom"></property>
<property name="age" value="13"></property>
</bean>
测试方法
public static void testStudentStaticFactory() {
ApplicationContext ac =new ClassPathXmlApplicationContext("applicationContext.xml");
Student student = ac.getBean("Student2", Student.class);
System.out.println(student);
}
3. 实例工厂:必须现有工厂实例对象,再通过实例对象创建对象,提供所有的方法都必须是非静态方法
applicationContext.xml配置
<!--创建工厂实例-->
<bean id="StudentFactory" class="com.wuwl.entity.StudentFactory"></bean>
<!--创建对象-->
<bean id="Student1" factory-bean="StudentFactory" factory-method="getStudent">
<!--**如果在此处不加上属性或对象,所有属性均为默认值,及时在对应的Student的bean中已经配置过了**-->
<property name="id" value="520"></property>
<property name="name" value="tom"></property>
<property name="age" value="13"></property>
</bean>
测试方法
public static void testStudentFactory() {
ApplicationContext ac =new ClassPathXmlApplicationContext("applicationContext.xml");
Student student = ac.getBean("Student1", Student.class);
System.out.println(student);
}
上一篇: leetcode练习-Combination Sum(排列组合,回溯法)
下一篇: 回溯法之排列组合
推荐阅读
-
spring配置文件(spring的开发步骤;bean中的scope,init-method,destroy-method;bean的工厂静态方法实例化;工厂动态方法实例化)
-
Spring中Bean的基于xml的三种实例化方式
-
Spring之旅(2)Bean,以及bean创建的几种方法,构造器,静态工厂方法,实例工厂方法
-
Spring创建实例bean的几种方式(静态工厂,实例工厂...)
-
javaweb中spring实例化bean三方式之静态工厂法
-
Spring第一课:基于XML装配bean(四),三种实例化方式:默认构造、静态工厂、实例工厂
-
Spring第一课:基于XML装配bean(四),三种实例化方式:默认构造、静态工厂、实例工厂...
-
spring配置文件(spring的开发步骤;bean中的scope,init-method,destroy-method;bean的工厂静态方法实例化;工厂动态方法实例化)
-
三种实例化Spring中Bean对象的方式
-
[1] Spring中的Bean实例化的三种方式