spring学习之FactoryBean学习(一)

本文通过一个具体的示例展示了如何在Spring框架中使用FactoryBean来创建和管理bean实例。示例中定义了一个GetFactoryBean类实现了FactoryBean接口,并在application.xml配置文件中根据不同参数配置了两个不同的bean实例。

整体代码结构:



GetFactoryBean.java

package com.kinsey.woo.factory;

import java.util.Date;

import org.springframework.beans.factory.FactoryBean;

public class GetFactoryBean implements FactoryBean<Object> {
	
	private boolean flag;
	
	public boolean isFlag() {
		return flag;
	}

	public void setFlag(boolean flag) {
		this.flag = flag;
	}

	@Override
	public Object getObject() throws Exception {
		return flag ? "PAIC" : new Date();
	}

	@Override
	public Class<? extends Object> getObjectType() {
		return Object.class;
	}

	@Override
	public boolean isSingleton() {
		return false;
	}

}


application.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 id="date" class="com.kinsey.woo.factory.GetFactoryBean">
		<property name="flag" value="false"></property>
	</bean>
	
	<bean id="paic" class="com.kinsey.woo.factory.GetFactoryBean">
		<property name="flag" value="true"></property>
	</bean>

</beans>


RunMain.java

package com.kinsey.woo;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class RunMain {

	public static void main(String[] args) {
		ApplicationContext ctx = new ClassPathXmlApplicationContext("application.xml");
		System.out.println(ctx.getBean("date"));
		System.out.println(ctx.getBean("&date"));
		System.out.println(ctx.getBean("paic"));
	}

}


结果见上图


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值