1、Instantiation with a Constructor(构造函数)
创建类DaoImpl1
package com.it.app.dao;
public class DaoImpl1 {
private String name;
private Integer age;
public DaoImpl1(String name, Integer age){
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "DaoImpl1{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
spring-context.xml文件:daoImpl1
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="daoImpl1" class="com.it.app.dao.DaoImpl1">
<constructor-arg name="name" value="micheal"></constructor-arg>
<constructor-arg name="age" value="12"></constructor-arg>
</bean>
</beans>
执行测试类:
package com.it.app;
import com.it.app.dao.DaoImpl1;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml");
DaoImpl1 daoImpl1 = (DaoImpl1) context.getBean("daoImpl1");
System.out.println(daoImpl1.toString());
}
}
2、Instantiation with a Static Factory Method(通过静态工厂 Factory Method):
package com.it.app.dao;
public class DaoImpl2 {
private static DaoImpl2 daoImpl2 = new DaoImpl2();
private DaoImpl2(){
}
public static DaoImpl2 createDaoimpl2(){
return daoImpl2;
}
}
spring-context.xml文件:daoImpl2
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--1、通过构造函数-->
<bean id="daoImpl1" class="com.it.app.dao.DaoImpl1">
<constructor-arg name="name" value="micheal"></constructor-arg>
<constructor-arg name="age" value="12"></constructor-arg>
</bean>
<!--2、通过静态工厂-->
<bean id="daoImpl2" class="com.it.app.dao.DaoImpl2" factory-method="createDaoimpl2"></bean>
</beans>
执行测试代码:
package com.it.app;
import com.it.app.dao.DaoImpl1;
import com.it.app.dao.DaoImpl2;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml");
DaoImpl2 daoImpl2 = (DaoImpl2) context.getBean("daoImpl2");
System.out.println(daoImpl2.toString());
}
}
3、Instantiation by Using an Instance Factory Method(实例化工厂)
创建DaoImpl3:
package com.it.app.dao;
public class DaoImpl3 {
private static DaoImpl3 daoImpl3 = new DaoImpl3();
public DaoImpl3 createDaoImpl3(){
return daoImpl3;
}
}
spring-context.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--1、通过构造函数-->
<bean id="daoImpl1" class="com.it.app.dao.DaoImpl1">
<constructor-arg name="name" value="micheal"></constructor-arg>
<constructor-arg name="age" value="12"></constructor-arg>
</bean>
<!--2、通过静态工厂-->
<bean id="daoImpl2" class="com.it.app.dao.DaoImpl2" factory-method="createDaoimpl2"></bean>
<!--2、通过实例工厂-->
<bean id="daoImpl3" class="com.it.app.dao.DaoImpl3" ></bean>
<bean id="daoImpl3Factory" factory-bean="daoImpl3" factory-method="createDaoImpl3"></bean>
</beans>
执行测试类:
package com.it.app;
import com.it.app.dao.DaoImpl1;
import com.it.app.dao.DaoImpl2;
import com.it.app.dao.DaoImpl3;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml");
DaoImpl3 daoImpl3 = (DaoImpl3) context.getBean("daoImpl3Factory");
System.out.println(daoImpl3.toString());
}
}