Spring入门学习——调用一个实例工厂方法创建Bean
来源:互联网 发布:我的世界透视矿物js 编辑:程序博客网 时间:2024/05/22 00:25
上面的代码实现了需要的场景,现在需要修改之前的配置文件,为了从ProductCreator类中创建产品,必须在IoC容器中声明该类一个实例,并且配置它的产品Map。修改后代码如下:package com.cgy.springrecipes.shop;
import java.util.Map;
public class ProductCreator {
private Map<String,Product> products;
public void setProducts(Map<String, Product> products) {
this.products = products;
}
public Product createProduct(String productId) {
Product product = products.get(productId);
if(product != null) {
return product;
}
throw new IllegalArgumentException("Unkonw product");
}
}
上面的xml配置就是实例工厂方法的配置内容,对比静态工厂实例方法的·配置内容 多了点(就算是除去了Map配置内容),在上面的实例工厂方法配置过程中,配置顺序如下:<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="productCreator" class="com.cgy.springrecipes.shop.ProductCreator">
<property name="products">
<map>
<entry key="kingston">
<bean class="com.cgy.springrecipes.shop.Battery">
<property name="name" value="kingston"/>
<property name="price" value="2.5"/>
</bean>
</entry>
<entry key="taylor">
<bean class="com.cgy.springrecipes.shop.Disc">
<property name="name" value="taylor"/>
<property name="price" value="1.5"/>
</bean>
</entry>
</map>
</property>
</bean>
<bean id="battery" factory-bean="productCreator" factory-method="createProduct">
<constructor-arg value="kingston"/>
</bean>
<bean id="disc" factory-bean="productCreator" factory-method="createProduct">
<constructor-arg value="taylor"/>
</bean>
</beans>
- Spring入门学习——调用一个实例工厂方法创建Bean
- Spring入门学习——调用静态工厂方法创建Bean
- 【spring NOTE】调用实例工厂方法创建Bean
- 学习Spring(二) 调用静态工厂方法创建Bean
- 7.7.3:调用实例工厂方法创建Bean
- Spring使用实例工厂方法创建Bean(一)
- Spring Bean工厂创建Bean实例的方法之使用静态工厂类
- Spring Bean工厂创建Bean实例的方法之使用工厂类
- spring学习笔记(17)--通过工厂方法创建Bean
- Spring工厂方式创建Bean实例
- Spring 工厂方式 创建bean实例
- Spring Bean工厂创建Bean实例的方法之使用构造器
- 通过调用静态工厂方法创建 Bean
- Spring入门学习——创建Bean后处理器
- Spring学习之使用静态工厂方法以及实例工厂方法配置bean
- Spring使用静态工厂方法创建Bean
- Spring使用静态工厂方法创建Bean
- spring学习小结7_使用工厂方法来配置bean:静态工厂方法和实例工厂方法
- UML之十字圆圈连线箭头符号“包含”C…
- Spring入门学习——商品折扣简单示例
- Spring入门学习——调用静态工厂方法创建Bean
- Java传址还是传型:丢进函数括号中…
- 昆石VOS2009 VOS3000无漏洞去后门电脑管理客户端大全
- Spring入门学习——调用一个实例工厂方法创建Bean
- 从最容易理解的图到SysML和UML
- iOS开发之Masonry框架源码深度解析
- Spring入门学习——从静态字段中声明Bean
- 为何需要SysML以及系统思维?以及…
- Spring入门学习——从对象属性中声明Bean
- WebSocket服务器的几次改进
- Spring入门学习——使用Spring表达式语言
- Swing做界面还是相对好用。对于界…