Spring 静态工厂和实例工厂
程序员文章站
2022-05-21 23:02:26
...
什么是静态工厂?
工厂类所有方法都是静态的
/**
* 里面一般来说都是静态的方法
* @author memory_coder
* @2017年10月2日 上午10:05:31
*/
public class StaticBeanFactory {
public static User getUser()
{
return new UserImpl();
}
}
在Application.xml文件中的配置
<!-- class为静态工厂类的全限定类名 factory-method为使用的静态方法
<bean id="user" class="com.slxy.factory.StaticFactory" factory-method="getUser" ></bean>
什么是实例工厂?
工厂类的方法为静态方法
/**
* @author memory_coder
* @2017年10月3日 下午6:49:44
*/
public class InstantBeanFactory {
public User getUser()
{
return new UserImpl();
}
}
在Application.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">
<!-- 配置实例工厂 -->
<bean id="userFactory" class="com.slxy.factory.InstantBeanFactory" ></bean>
<!-- 配置工厂实例的对象 factory-bean为使用实例工厂的id属性值 factory-method为调用工厂的方法-->
<bean id="userId" factory-bean="userFactory" factory-method="createUserService"></bean>
</beans>
使用方法都一样
/**
* @author memory_coder
* @2017年10月3日 下午6:57:28
*/
public class InstantBeanFactoryText {
@Test
public void createUserService()
{
// 加载spring配置文件
ApplicationContext context = new ClassPathXmlApplicationContext("InstantApplication.xml");
// 获得user实例对象
UserS us = context.getBean("userId",User.class);
us.addUser();
}
}
推荐阅读
-
详解MongoDB和Spring整合的实例代码
-
iOS应用设计模式开发中对简单工厂和工厂方法模式的运用
-
Spring Cloud开发人员如何解决服务冲突和实例乱窜?(IP实现方案)
-
JavaScript静态作用域和动态作用域实例详解
-
格式工厂怎么合并视频和音频?使用格式工厂合并视频和音乐教程详细介绍
-
C#读取静态类常量属性和值的实例讲解
-
Mybaits 源码解析 (十一)----- 设计模式精妙使用:静态代理和动态代理结合使用:@MapperScan将Mapper接口生成代理注入到Spring
-
PHP中“简单工厂模式”实例代码讲解
-
Flask框架工厂函数用法实例分析
-
python中的实例方法、静态方法、类方法、类变量和实例变量浅析