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: 标识表现层组件 ...
随机推荐
- RabbitMQ中 exchange、route、queue的关系
从AMQP协议可以看出,MessageQueue.Exchange和Binding构成了AMQP协议的核心,下面我们就围绕这三个主要组件 从应用使用的角度全面的介绍如何利用Rabbit MQ构建 ...
- Docker SSH
1. Dockerfile -->docker build -t centos6-ssh https://git.oschina.net/feedao/Docker_shell/raw/st ...
- Java 学习总结(一)
1. 概述 1.1 dos命令行--常见的命令 l dir : 列出当前目录下的文件以及文件夹 l md : 创建目录 l rd : 删除目录 l cd : 进入指 ...
- List<T>线性查找和二分查找BinarySearch效率分析
今天因为要用到List的查找功能,所以写了一段测试代码,测试线性查找和二分查找的性能差距,以决定选择哪种查找方式. 线性查找:Contains,Find,IndexOf都是线性查找. 二分查找:Bin ...
- docker跨容器之使用link大法通信
容器1 docker run --name elixir -it edib/elixir-phoenix-dev /bin/bash ip address看看自己的ip 容器2 docker run ...
- Charles V4系列更新 | 绿色特别版 | 视频教程
Charles V4.0 视频教程 http://www.cnblogs.com/weimjsam/p/5841816.html Charles V4系列 绿色特别版,解压密码:博客名 链接: htt ...
- 基于adt-bundle-windows-x86的android开发环境搭建
0,简介: 最近简单着手了解 android 开发.工欲善其事,必先利其器. 我本人不太喜欢使用java 开发,所以简单了解了下其 c# c++都可以进行android 开发,用c++的话要使用NDK ...
- Datagridview 添加checkbox列,并判断Datagridview 中的checkbox列是否被选中
Solution1://In Fill DataGridViewEvent : DataGridViewCheckBoxColumn ChCol = new DataGridViewCheckBoxC ...
- C语言操作mysql
php中 mysqli, pdo 可以用 mysqlnd 或 libmysqlclient 实现 前者 从 php 5.3.0起已内置到php中, 并且支持更多的特性,推荐用 mysqlnd mysq ...
- 显示hello
The modern user interface is constructed from visual objects of various sorts. Depending on the oper ...