spring学习笔记九 通过工厂方法配置bean
来源:互联网 发布:ceb文件阅读器mac版 编辑:程序博客网 时间:2024/04/28 01:12
一、静态工厂方法
在factory包下,建立四个类,目录结构如下:
car.java
package factory;public class car { private String brand; private double price;public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public car(String brand, double price) {super();this.brand = brand;this.price = price;}@Overridepublic String toString() {return "car [brand=" + brand + ", price=" + price + "]";} }staticcarfactory.java
package factory;import java.util.HashMap;import java.util.Map;public class staticcarfactory { /*静态工厂方法:直接调用一个类的静态方法,返回一个bean的实例*/private static Map<String, car> cars=new HashMap<String, car>();static{cars.put("Audi", new car("Audi", 30000));cars.put("DaZhong", new car("DaZhong", 50000));}public static car getcar(String name){return cars.get(name);}}Main.java
package factory;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Main {public static void main(String[] args) {ApplicationContext ctx=new ClassPathXmlApplicationContext("factory.xml");car car1=(car) ctx.getBean("car1");System.out.println(car1);}}factory.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 通过静态工厂方法配置bean,注意不是配置惊天工厂方法实例,而是配置bean实例 class 属性:指向静态工厂方法的全类名 factory-method:指向静态工厂方法的名字 constructor-arg:如果工厂方法需要传参数,则使用constructor-arg来配置参数 --><bean id="car1" class="factory.staticcarfactory" factory-method="getcar"> <constructor-arg value="Audi"></constructor-arg></bean></beans>
运行结果:
car [brand=Audi, price=30000.0]
二、实例工厂方法
IntanceCarFactory.java
package factory;import java.util.HashMap;import java.util.Map;/* * 实例工厂方法:实例工厂的方法,即需要创建工厂本身,再调用工厂的实例方法来返回bean的实例 * */public class IntanceCarFactory { private Map<String, car> cars=new HashMap<String,car>(); public IntanceCarFactory(){ cars.put("audi", new car("audi", 300000)); cars.put("DaZhong", new car("DaZhong", 400000)); } public car getcar(String brand){ return cars.get(brand); }}factory.java
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 通过静态工厂方法配置bean,注意不是配置惊天工厂方法实例,而是配置bean实例 class 属性:指向静态工厂方法的全类名 factory-method:指向静态工厂方法的名字 constructor-arg:如果工厂方法需要传参数,则使用constructor-arg来配置参数 --><bean id="car1" class="factory.staticcarfactory" factory-method="getcar"> <constructor-arg value="Audi"></constructor-arg></bean><!-- 配置工厂实例 --><bean id="car" class="factory.IntanceCarFactory"></bean><!-- 通过实例工厂方法来配置bean --><bean id="car2" factory-bean="car" factory-method="getcar"> <constructor-arg value="DaZhong"></constructor-arg> </bean></beans>Main.java
package factory;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Main {public static void main(String[] args) {ApplicationContext ctx=new ClassPathXmlApplicationContext("factory.xml");car car1=(car) ctx.getBean("car1");System.out.println(car1);//car car2=(car) ctx.getBean("car2");//System.out.println(car2);}}
car [brand=Audi, price=30000.0]
car [brand=DaZhong, price=400000.0]
阅读全文
0 0
- spring学习笔记九 通过工厂方法配置bean
- Spring框架学习(8):通过工厂方法配置bean
- spring学习笔记(17)--通过工厂方法创建Bean
- spring 通过工厂方法配置Bean
- Spring-10:通过工厂方法配置Bean
- spring中通过工厂方法配置Bean
- Spring通过工厂方法配置Bean
- Spring中通过工厂方法配置bean
- Spring通过工厂方法配置bean
- Spring通过工厂方法配置bean
- 11.Spring学习笔记_通过工厂方法配置Bean(by尚硅谷_佟刚)
- Spring学习(7)--Spring中通过工厂方法和FactoryBean配置bean
- spring(12) Spring的通过工厂方法配置Bean
- 15.笔记JAVA Spring框架学习————通过工厂配置Bean
- Spring 通过工厂方法(Factory Method)来配置bean
- spring通过工厂方法和FactoryBean来配置Bean
- Spring 通过工厂方法(Factory Method)来配置bean
- Spring-12,通过工厂方法和FactoryBean配置bean
- UItableView的一些特殊点击效果
- Linux上安装JDK
- TabLayout使用
- vue2.x的路由2-进阶
- MD5加密和解密
- spring学习笔记九 通过工厂方法配置bean
- 播放按钮动画
- instanceof 是如何工作的
- Darknet下COCO&Voc训练配置文件修改记录
- iOS开发常用代码总结(一)
- 窗口过程必须是可重入的概念理解
- Android 实现沉浸式只需一行代码
- struts2最新漏洞汇总
- Nginx反向代理负载均衡以及端口丢失问题