java简单bean容器实现

1、新建两个类:
在这里插入图片描述
AccountDaoImpl:
在这里插入图片描述
IaccountServiceImpl
在这里插入图片描述
2、classpath建立配置文件,由于反射方式建立类对象:
accoutDao=com.fang.dao.Impl.AccountDaoImpl
iaccoutService=com.fang.service.impl.IaccountServiceImpl
在这里插入图片描述3、建立工厂类:
package com.fang.Factory;

import com.fang.service.IaccoutService;

import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

public class BeanFactory {

private static Properties  p;
private static Map<String,Object> beans ;
static {
    try {
        p =  new Properties();
        beans = new HashMap<String, Object>();
        InputStream in = BeanFactory.class.getClassLoader().getResourceAsStream("bean.properties");
        p.load(in);
        Enumeration keys = p.keys();
        while (keys.hasMoreElements()){
            String key = keys.nextElement().toString();
            String beanPath =  p.getProperty(key);
            System.out.println(beanPath);
            Object object = Class.forName(beanPath).newInstance();
            beans.put(key,object);
        }
    }catch (Exception e){
        e.printStackTrace();
    }

}

public static Object getBean(String beanName){
    return beans.get(beanName);
}
public static void main(String[] args) {
   IaccoutService iaccoutService = (IaccoutService) BeanFactory.getBean("iaccoutService");
   iaccoutService.saveAccount();
}

}

(1)其中:加载properties不要使用file方式;web功能会出错;使用如下类路径方式
BeanFactory.class.getClassLoader().getResourceAsStream(“bean.properties”);
(2) 在静态块在,使用map创建类实例,采用单例模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值