Spring初学之通过工厂方法配置Bean
工厂方法配置bean分为两种,一种是实例工厂方法,另一种是静态工厂方法。
先来看看实体bean:
Car.java:
package spring.beans.factory;
public class Car {
private String name;
private int price;
public Car(String name, int price) {
super();
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
@Override
public String toString() {
return "Car [name=" + name + ", price=" + price + "]";
}
}
一、实例工厂方法配置bean
InstanceBeanFactory.java:
package spring.beans.factory; import java.util.HashMap;
import java.util.Map; /**
* 实例工厂方法
* @author Administrator
*
*/
public class InstanceBeanFactory {
private Map<String, Car> map=null; public InstanceBeanFactory() {
map=new HashMap<String, Car>();
map.put("奥迪", new Car("奥迪", 300000));
map.put("福特", new Car("福特", 400000));
} public Car getCar(String name){
return map.get(name);
} }
spring的xml配置文件核心代码:
<!-- 配置实例工厂方法的bean -->
<bean id="instanceFactory" class="spring.beans.factory.InstanceBeanFactory"></bean> <!-- 通过实例工厂方法创建bean -->
<bean id="car2" factory-bean="instanceFactory" factory-method="getCar">
<constructor-arg value="福特"></constructor-arg>
</bean>
二、静态方法配置bean
StaticBeanFactory.java:
package spring.beans.factory; import java.util.HashMap;
import java.util.Map; /**
* 通过静态工厂方法创建bean
* @author Administrator
*
*/
public class StaticBeanFactory {
private static Map<String, Car> map=new HashMap<String, Car>();
static{
map.put("长安", new Car("长安", 30000));
map.put("奥迪", new Car("奥迪", 300000));
} public static Car getCar(String name){ return map.get(name);
}
}
spring的xml配置文件核心代码:
<!-- 通过静态工厂方法创建bean -->
<bean id="car" class="spring.beans.factory.StaticBeanFactory"
factory-method="getCar">
<constructor-arg value="奥迪"></constructor-arg> </bean>
测试方法:
package spring.beans.factory.test; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import spring.beans.factory.Car; public class Main { public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext("beans-factory.xml");
Car car=(Car) ctx.getBean("car");
System.out.println(car); Car car1=(Car) ctx.getBean("car2");
System.out.println(car1);
} }
输出:
Car [name=奥迪, price=300000]
Car [name=福特, price=400000]
Spring初学之通过工厂方法配置Bean的更多相关文章
- 11.Spring通过工厂方法配置Bean
通过工厂方法配置Bean暴扣静态工厂方法和实例工厂方法. 1.静态工厂方法 调用静态工厂方法创建Bean是将对象创建的过程封装到静态方法中,当客户端需要对象时,只需要简单的调用静态方法,而不去关心创建 ...
- 4.spriing:Bean的生命周期/工厂方法配置Bean/FactoryBean
1.Bean的生命周期 scope:singleton/prototype 1)spring容器管理singleton作用的生命周期,spring能够精确知道Bean合适创建,何时初始化完成,以及何时 ...
- 工厂方法配置bean
1:静态工厂方法配置bean 1):对象 package com.spring.helloworld; public class Car { private String name; private ...
- Spring4学习回顾之路07- 通过工厂方法配置Bean
一:通过静态工厂配置Bean 建立Student.java package com.lql.srping04; /** * @author: lql * @date: 2019.10.28 * Des ...
- Spring学习记录(九)---通过工厂方法配置bean
1. 使用静态工厂方法创建Bean,用到一个工厂类 例子:一个Car类,有brand和price属性. package com.guigu.spring.factory; public class C ...
- spring 通过工厂方法配置Bean
概要: 通过调用静态工厂方法创建Bean 调用静态工厂方法创建Bean是将对象创建的过程封装到静态方法中.当client须要对象时,仅仅须要简单地调用静态方法,而不用关心创建对象地细节. 要声明通过静 ...
- Spring4.0学习笔记(6) —— 通过工厂方法配置Bean
1.静态工厂方法: bean package com.spring.factory; public class Car { public Car(String brand) { this.brand ...
- spring4-2-bean配置-9-通过工厂方法配置bean
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAjwAAAFICAIAAADbNrOHAAAgAElEQVR4nO2dy7W0uhGFOxWn4JEXAS
- Spring_通过工厂方法配置 Bean
beans-factory.xml <?xml version="1.0" encoding="UTF-8"?><beans xmlns=&q ...
随机推荐
- 深度强化学习资料(视频+PPT+PDF下载)
https://blog.csdn.net/Mbx8X9u/article/details/80780459 课程主页:http://rll.berkeley.edu/deeprlcourse/ 所有 ...
- codeblocks在进行多线程出现phread问题
undefined reference to 'pthread_create' 出现这个错误是因为编译默认不会链接进程库. 可以选择用gcc进行编译 加上-lpthread 比如:gcc exampl ...
- tomcat ; nginx ;mysql
[说明]上午在服务器上部署了自己的web目录(tomcat虚拟目录),下午安装并了解了nginx(出了点问题,后来解决了),晚上尝试nginx和tomcat配置(一头雾水) 一:今日完成 1)配置to ...
- 第三章 T-SQL 编程
3.1 使用变量 变量是可以存储数据值的对象.可以使用局部变量向SQL语句传递数据.在T-SQL中执行一批SQL语句时,可以声明许多变量以便临时使用.声明变量以后,可以在批处理中用一条T-SQL语句设 ...
- 清空javascript数组数据
var arrayObj = new Array(); arrayObj.splice(0, arrayObj.length);//清空数组数据
- 借助EasyNTS云组网,无需拉专线,也能解决设备现场无公网固定IP的问题
一.产品背景 为了帮助企业和个人用户解决网络访问和设备控制的问题,我们研发了一款创新型产品:EasyNTS云组网系统.什么是EasyNTS,什么是云组网呢? 在解释之前,我们先来了解几个在凡是涉及网络 ...
- Springboot 1.5.x版本上读取自定义配置文件问题
原来的解决方案: 现在1.5.x以后取消了location地址 1.5以后解决方案:
- 基于apache —HttpClient的小爬虫获取网页内容
今天(17-03-31)忙了一下午研究webmagic,发现自己还太年轻,对于这样难度的框架(类库) 还是难以接受,还是从基础开始吧,因为相对基础的东西教程相多一些,于是乎我找了apache其下的 H ...
- Oracle 12c 读书笔记(二):Oracle数据库体系结构
以11g来分析 数据库实例包括:SGA和一系列后台管理.监控简称 数据库包括三种文件:数据文件.控制文件.重做日志文件 数据库实例和数据库是Orale数据库体系的核心部分 Oracle服务器和实例 实 ...
- 《Tensorflow技术解析与实战》第四章
Tensorflow基础知识 Tensorflow设计理念 (1)将图的定义和图的运行完全分开,因此Tensorflow被认为是一个"符合主义"的库 (2)Tensorflow中涉 ...