赞
赏
运用 Spring IOC 使用工厂类的方式创建对象。
搭建 Spring 的开发环境,运用 Spring IOC 分别使用工厂类的静态方法和实例方法创建对象。
pom.xml 文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.haicoder</groupId>
<artifactId>SpringDemo02</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<!--添加Spring核心容器支持包-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.1.7.RELEASE</version>
</dependency>
</dependencies>
</project>
核心配置文件:
<?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">
<!--
使用工厂类的静态方法获取对象
class: 工厂类的全名
factory-method: 工厂类的静态方法
-->
<bean id="user1" class="net.haicoder.factory.UserFactory" factory-method="createUserByStatic"></bean>
<!--
使用工厂类的实例方法获取对象
1. 创建工厂对象
class:工厂类的全名
2. 使用工厂对象调用crateUser方法创建User对象
factory-bean:工厂对象
factory-method:工厂对象的方法
-->
<bean id="factory" class="net.haicoder.factory.UserFactory"></bean>
<bean id="user2" factory-bean="factory" factory-method="createUser"></bean>
</beans>
工厂类:
public class UserFactory {
/**
* 静态方法
*/
public static User createUserByStatic(){
System.out.print("调用工厂静态方法:");
return new User();
}
/**
* 实例方法
*/
public User createUser(){
System.out.print("调用工厂实例方法:");
return new User();
}
}
实体类:
public class User {
public User(){
System.out.println("创建User对象!");
}
}
测试类:
public class Test {
public static void main(String[] args) {
System.out.println("嗨客网(www.haicoder.net)\n");
// 通过配置文件获取Spring的IOC容器
ApplicationContext act = new ClassPathXmlApplicationContext("applicationContext.xml");
// 使用工厂类静态方法创建对象
User user1 = (User) act.getBean("user1");
System.out.println("【user1】:" + user1);
// 使用工厂类的实例方法创建对象
User user2 = (User) act.getBean("user2");
System.out.println("【user2】:" + user2);
}
}
运行结果,如下图:
以上案例运用 Spring IOC 分别使用工厂类的静态方法和实例方法创建对象。