《Spring Recipes》第二章笔记:Creating Beans by Invokin...

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

《Spring Recipes》第二章笔记:Creating Beans by Invoking an Instance Factory Method


问题

用户希望使用工厂类来实例化bean。

解决方案

Spring的bean元素中提供了factory-bean属性来配置工厂类,factory-method属性来配置工厂方法。

例:
facroty-bean:定义返回bean实例的工厂方法。
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("Unknown product");}
}

配置文件: 使用工厂类时,需要将class设置为工厂类,并设置factory-method为工厂类中实例化bean的工厂方法。
<beans ...><bean id="productCreator" class="com.apress.springrecipes.shop.ProductCreator"><property name="products"><map><entry key="aaa"><bean class="com.apress.springrecipes.shop.Battery"><property name="name" value="AAA" /><property name="price" value="2.5" /></bean></entry><entry key="cdrw"><bean class="com.apress.springrecipes.shop.Disc"><property name="name" value="CD-RW" /><property name="price" value="1.5" /></bean></entry></map></property></bean><bean id="aaa" factory-bean="productCreator" factory-method="createProduct"><constructor-arg value="aaa" /></bean><bean id="cdrw" factory-bean="productCreator" factory-method="createProduct"><constructor-arg value="cdrw" /></bean></beans>


转载于:https://my.oschina.net/pkpk1234/blog/57669

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548481.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JQuery Datatables editor进行增删改查操作(一)

背景 editor作为Datatables的插件之一&#xff0c;功能十分强大&#xff0c;有全行编辑模式、泡泡编辑模式、行内编辑模式。个人觉得&#xff0c;除了泡泡编辑模式外&#xff0c;其他两种模式功能在实际项目中会经常使用到&#xff0c;泡泡模式提供了模态框可以对表格内的数据…

将C#中DateTime类型转化为JavaScript中的Date类型

将C#中的DateTime类型数据返回到前端页面时&#xff0c;显示的样子如下图所示&#xff1a; 可以用JS前端操作转化成JS的Date格式&#xff0c;直接上代码 &#xff1a; // 对Date的扩展&#xff0c;将 Date 转化为指定格式的String // 月(M)、日(d)、小时(h)、分(m)、秒(s)、季…

如何在ashx页面获取Session值 (仅供个人参考)

在一般事务处理页面&#xff0c;可以轻松的得到 Request,Response对象&#xff0c;从而进行相应的操作&#xff0c;如下&#xff1a; HttpRequest Request context.Request; HttpResponse Response context.Response; 但是要得到 Session的值就没有那么简单了。比如你要在as…

FusionCharts V3图表导出图片和PDF属性说明

百闻不如一见&#xff0c;狠狠点击&#xff0c;快快下载&#xff1a;&#xff08;演示文档有错误&#xff0c;不提供下载了。待新的演示文档出来。&#xff09; 许多朋友说上面的DEMO用不了。fusioncharts官方的演示非常不错&#xff0c;就是来不及整理&#xff0c;各位大侠们…

JQuery Datatables editor进行增删改查操作(二)

背景 上一篇对editor进行了一个基本功能的初始化操作演示&#xff0c;本文进一步了解下editor在上一篇文章功能的基础上添加了部分常用基本功能。 整体界面如下图所示&#xff1a; 新增界面&#xff1a; 新增界面增加了单选按钮&#xff0c;下拉框&#xff0c;和时间选择器&am…

JQuery Datatables editor 本地编辑功能

背景 很多项目需求中&#xff0c;不需要表格自己进行AJax操作&#xff0c;数据的交互需要另外写代码实现&#xff0c;表格只需要提供本地编辑即可&#xff0c;这该怎么办呢&#xff1f;其实editor对这种实现很简单&#xff0c;去掉editor中的ajax属性即可。可以点击这里查看ed…

《统一沟通-微软-实战》-6-部署-2-中介服务器-5-语音路由-语音策略

创建语音策略和配置 PSTN 用法记录 如果要创建新的语音策略&#xff0c;请执行以下步骤。如果要编辑语音策略&#xff0c;请参阅修改语音策略和配置 PSTN 用法记录中的相关步骤。 注意&#xff1a; 每个语音策略必须至少具有一条关联的 PSTN 用法记录。要查看企业语音部署中提…

JQuery Datatables editor 行内编辑功能

背景 ERP软件中&#xff0c;能进行行内编辑的表单是常用功能&#xff0c;行内编辑功能能让用户在表格中自己填写、修改、删除数据或者选择数据&#xff0c;可以说表格控件是ERP软件的核心控件&#xff0c;而行内编辑功能是核心中的关键。 本文会继续接着上一篇文章的介绍继续…

JQuery Datatables 动态配置参数异步加载数据

背景需求 在前端动态设置datatables需要传递到后端的查询参数&#xff0c;异步加载返回的数据。点击这里进入datatables中文网异步加载数据说明 直接上代码 var table; var url "/Home/index"; table $(#example).DataTable({ajax: {url: url,type: "Get&q…

Chromium OS 开源项目

基于chrom浏览器的开源开发 http://www.chromium.org/chromium-os

C#生成随机字符串

public class RandomStringBuilder {/// <summary>/// 生成单个随机数字/// </summary>private int createNum(){Random random new Random(Guid.NewGuid().GetHashCode());int num random.Next(10);return num;}/// <summary>/// 生成单个大写随机字母///…

Shell图形化监控网络流量

shell图形化监控网络流量 网络流量的监控工具有很多&#xff0c;如&#xff1a;Mrtg、Cacti、Zabbix等等&#xff0c;他们都有着各自的特点&#xff0c;不同的侧重&#xff0c;只为适合不同的应用场景的各种特殊需求。除了网络流量监控工具以外&#xff0c;还有Nagios这样的监控…

JQuery Datatables editor 在编辑前刷新数据

背景 在同一时间&#xff0c;可能很多人在编辑修改同一数据&#xff0c;这会导致在一个人还在在修改的过程中另一人在完成了修改并保存了数据。editor在button插件的扩展中可以有效的缓解这个问题&#xff1a;自定义一个编辑按钮&#xff0c;此编辑按钮实现 点击按钮后&#x…

php date时间本地化问题

今天在写一个东西时&#xff0c;发现时间一直对不上&#xff0c;date("Y-m-d h:i:s") 总是与服务器时间差几个小时&#xff0e;后来发现&#xff0c;我现在的机器上的php是5.2的&#xff0e; 原来从php5.1.0开始&#xff0c;php.ini里加入了date.timezone这个选项&a…

JQuery Datatables 显示行的附加信息

点击这里查看datatables官网介绍 点击这里查看datatables中文网介绍 效果如下图所示&#xff1a; 点击首列调用ajax返回数据&#xff0c;并展开明细行如下图所示&#xff1a; CSS代码&#xff1a; td.details-control {background: url(../../scripts/datatables-1.10.19/ima…

初涉c#设计模式-Iterator Pattern

一、迭代器模式简介(Brief Introduction) 迭代器模式(Iterator Pattern)&#xff0c;提供一种方法顺序访问一个聚合对象中元素&#xff0c;而不暴露改集合对象的内部表示。 Provide a way to access the elements of an aggregate object sequentially without exposing its un…

Buttons——CSS按钮样式库

点击进入查看官网说明 不同颜色按钮&#xff1a; <button class"button button-3d button-primary">button1</button><button class"button button-3d button-action">button2</button><button class"button button-3d b…

Win10中如何找到并打开SqlServer2008 R2配置管理器

首先Win R &#xff0c;打开运行窗口&#xff0c;然后输入&#xff1a; SQLServerManager10.msc

机器学习中的相似性度量

在做分类时常常需要估算不同样本之间的相似性度量(Similarity Measurement)&#xff0c;这时通常采用的方法就是计算样本间的“距离”(Distance)。采用什么样的方法计算距离是很讲究&#xff0c;甚至关系到分类的正确与否。 本文的目的就是对常用的相似性度量作一个总结。 本文…

EF中DB First模式下数据库中表结构变化时如何快速同步到EF模型中

没想到什么好的精准的办法&#xff0c;持续的报错&#xff0c;然后定位报错很是头疼。我目前感觉较快方式有两种&#xff0c;如果有更好的方式&#xff0c;请大家指教。 一、先在数据库中修改表的结构属性&#xff0c;再删除edmx文件中对应的实体类模型&#xff0c;然后再是“从…