抽象工程、单例

用spring获取bean违例
1:定义工程接口
package com.spdx.app.proxy;


public interface IBeanFactory
{
public Object createBean(String beanName);
}

2:定义抽象工程,实现单例
public abstract class AbstractBeanFactory implements IBeanFactory
{

private static String className = "com.spdx.app.proxy.SimpleBeanFactory";

private static Object lock = new Object();

private static AbstractBeanFactory instance;

public static AbstractBeanFactory getInstance()
{
if (null == instance)
{
synchronized (lock)
{
if (null == instance)
{
try
{
Class clazz = Class.forName(className);
instance = (AbstractBeanFactory) clazz.newInstance();
}
catch (ClassNotFoundException e)
{
}
catch (InstantiationException e)
{
}
catch (IllegalAccessException e)
{
}
}
}
}
return instance;
}
}

3:工厂实现

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;


public class SimpleBeanFactory extends AbstractBeanFactory
{

private ApplicationContext application = null;

private Resource resource = null;

private BeanFactory beanFactory = null;

public SimpleBeanFactory()
{
application = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});
application = new FileSystemXmlApplicationContext("src/applicationContext.xml");

//resource = new ClassPathResource("applicationContext.xml");
//beanFactory = new XmlBeanFactory(resource);

System.out.println("init application...");
}

public Object createBean(String beanName)
{
return application.getBean(beanName);
//return beanFactory.getBean(beanName);
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值