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 ...
随机推荐
- php自定义函数: 改进升级版curl
<?php function dcurl($url, $method = 'GET', $postFields = null, $header = null) { $ch = curl_init ...
- 取消select默认样式
/*清除select默认样式*/select { border: solid 1px #CACDD0; appearance:none; -moz-appearance:none; -webkit-a ...
- 简述OSI七层协议模型、TCP/IP四层模型和五层协议之间的关系
一.OSI七层模型 OSI七层协议模型主要是:应用层(Application).表示层(Presentation).会话层(Session).传输层(Transport).网络层(Network).数 ...
- Python操作Redis(一)
redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set ...
- 我的Android进阶之旅------>Android百度地图定位SDK功能学习
因为项目需求,需要使用百度地图的定位功能,因此去百度地图开发平台下载了百度地图的Android定位SDK最新版本的开发包和示例代码学习. Android 定位SDK地址:http://develope ...
- 2、Python request、BeautifulSoup(download mm_pic)
import requests from bs4 import BeautifulSoup import os class DownLoadImg(object): def __init__(self ...
- webview自动循环播放
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&q ...
- spring 编译时抱错纪录class path resource [spring/] cannot be resolved to URL because it does not exist
class path resource [spring/] cannot be resolved to URL because it does not exist; 在 pom.xml 里添加如下代码 ...
- django中admin路由系统工作原理
一.如图所示 from django.contrib import admin from . import models class zhangsan(admin.ModelAdmin): list_ ...
- $Android制作和使用Nine-Patch图片
Nine-Patch图片是一种经过特殊处理的png图片,能够指定图片的哪些区域可以被拉伸而哪些区域不可以. (一)普通图片被拉伸时的缺陷 有如下xml文件,其中子LinearLayout的背景图片设置 ...