整体代码结构:
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"));
}
}
结果见上图
本文通过一个具体的示例展示了如何在Spring框架中使用FactoryBean来创建和管理bean实例。示例中定义了一个GetFactoryBean类实现了FactoryBean接口,并在application.xml配置文件中根据不同参数配置了两个不同的bean实例。
3075

被折叠的 条评论
为什么被折叠?



