Spring 通过工厂配置Bean
1.通过静态工厂方法配置Bean
要声明通过静态方法创建的 Bean, 需要在 Bean 的 class 属性里指定拥有该工厂的方法的类, 同时在 factory-method 属性里指定工厂方法的名称. 最后, 使用 <constrctor-arg> 元素为该方法传递方法参数.
//创建工厂
public class CarFactory {
public static Map<String, Car> cars = new HashMap<String, Car>();
static{
cars.put("bm", new Car("bm",200));
cars.put("db", new Car("db",300));
cars.put("bsj", new Car("bsj",400));
}
public static Car getCar(String name) {
return cars.get(name);
}
}
//在配置文件中配置静态工厂方法
<bean id="bsj" class="springTest.CarFactory" factory-method="getCar">
<constructor-arg value="bsj"></constructor-arg>
</bean>
1.通过实例工厂方法配置Bean 要声明通过实例工厂方法创建的 Bean在 bean 的 factory-bean 属性里指定拥有该工厂方法的 Bean,在 factory-method 属性里指定该工厂方法的名称,使用 construtor-arg 元素为工厂方法传递方法参数。
//创建工厂
public class CarFactory {
public static Map<String, Car> cars = new HashMap<String, Car>();
static{
cars.put("bm", new Car("bm",200));
cars.put("db", new Car("db",300));
cars.put("bsj", new Car("bsj",400));
}
public static Car getCar(String name) {
return cars.get(name);
}
public Car getCar(String name,int speed) {
return new Car(name,speed);
}
}
//配置Bean
<bean id="carFactory" class="springTest.CarFactory"></bean> //工厂实例
<bean id="dz" factory-bean="carFactory" factory-method="getCar">
<constructor-arg value="dz" index="0"></constructor-arg>
<constructor-arg value="200" index="1"></constructor-arg>
</bean>
Spring 通过工厂配置Bean的更多相关文章
- 使用Junit测试一个 spring静态工厂实例化bean 的例子,所有代码都没有问题,但是出现java.lang.IllegalArgumentException异常
使用Junit测试一个spring静态工厂实例化bean的例子,所有代码都没有问题,但是出现 java.lang.IllegalArgumentException 异常, 如下图所示: 开始以为是代码 ...
- 由spring的工厂构造bean想到的
被Spring管理的bean可以是直接创建实例,还可以通过工厂模式来进行创建.例如brave的tracing bean定义: <bean id="tracing" class ...
- Spring入门第一课:Spring基础与配置Bean
1.入门 Spring是简化java开发的一个框架,其中IoC和AOP是Spring的两个重要核心.由于Spring是非侵入性的,通过Ioc容器来管理bean的生命周期,还整合了许多其他的优秀框架,所 ...
- Spring下如何配置bean
本次讲述项目背景: 创建Service类,Service下用到dao类.通过在Spring中配置bean,实现在项目启动时,自动加载这个类 本次只讲述配置bean的注意事项,故只给出简单实例: 创建S ...
- 5. Spring 通过 XML 配置 bean (进阶)
1. 设置 bean 的作用域 当通过 Spring IOC 容器创建 bean 实例的时候,不仅可以完成 bean 的实例化,也可以为 bean 指定特定的作用域,Spring 支持以下 5 种作用 ...
- 12.Spring通过FactoryBean配置Bean
为啥要使用FactoryBean: 在配置Bean的时候,需要用到IOC容器中的其它Bean,这个时候使用FactoryBean配置最合适. public class Car { private St ...
- Spring IOC实现配置bean和实例
配置 beans.xml文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=&quo ...
- Spring 通过FactoryBean配置Bean
1.实现FactoryBean接口 import org.springframework.beans.factory.FactoryBean; public class CarFactoryBean ...
- Spring通过注解配置Bean
@Component: 基本注解, 标识了一个受 Spring 管理的组件@Repository: 标识持久层组件@Service: 标识服务层(业务层)组件@Controller: 标识表现层组件 ...
随机推荐
- Github 笔记
在本地创建并切换 git checkout -b your_branch_name 把本地分支的修改提交到远端的分支上 git push origin local_branch_name:remote ...
- SPOJ QTREE Query on a tree
题意:给一颗n个点的树,有两种操作CHANGE i ti : 把第i条边的权变为tiQUERY a b : 问点a 到 点b 之间的边的最大权 思路:树剖处理边权.由于是边,所以只需要把边权处理到子节 ...
- .NET软件工程师面试总结
1.手写画出系统架构图,系统代码架构,有什么技术难点? 2.手写画出系统部署图 CDN(一般购买别人的服务器会自动CDN,他们自己配置就OK啦) 3.asp.net 的session怎么实现会话共享 ...
- js计算日期之间的月份差
<script type="text/javascript"> getMonthBetween("2015-05-01","2016-05 ...
- Linux系统性能和使用活动监控工具 sysstat
Sysstat是一个非常方便的工具,它带有众多的系统资源监控工具,用于监控系统的性能和使用情况.我们在日常使用的工具中有相当一部分是来自sysstat工具包的.同时,它还提供了一种使用cron表达式来 ...
- maya,mel,eval,stringarray
mel里,当要eval("client()"),并且要传递stirngarray参数给函数client()时,正确的写法应该是: global proc intermediator ...
- ThinkPad E440 Ubuntu 13.1无线网卡 RTL8723BE 驱动解决办法总结
方法一.在使用网线链接到情况下 第一步.执行下边到命令,即从github上下载驱动程序并安装 sudo apt-get install linux-headers-generic build-esse ...
- Spring AOP 完成日志记录
Spring AOP 完成日志记录 http://hotstrong.iteye.com/blog/1330046
- yum install nginx
先安装nginx的yum源 http://nginx.org/en/linux_packages.html#stable 找到链接,安装: rpm -ivh http://nginx.org/pack ...
- unity3d 镜头随触屏移动
js #pragma strict //用于绑定参照物对象 var target : Transform; //缩放系数 var distance = 10.0; //左右滑动移动速度 var xSp ...