模块需求分析

配置模块,将需要改动的值专门放到一个 xml 配置文件中,通过 xml 解析实现读取配置文件
通过反射创建对象

核心功能实现

模仿 Spring 框架

IOC 控制反转

之前获取对象的方式 需要了就 new 对象,程序员主动去 new

而框架是提前把所需要的对象创建好,放入一个大容器,程序员需要的时候,直接通过公共接口从容器中去除即可。对象的创建销毁,以及对象之间复杂关系的管理,全部由框架完成

程序员使用配置文件来控制框架行为

DI 依赖注入

实例化对象时,如果需要其他成员,则 xml 文件中配置好值

需要的依赖对象/配置信息,提前注入

步骤

  1. 解析 xml 文件获取 mapproperties
  2. 如果需要使用对象 从 map 获取
//GatherImpl gather = new GatherImpl();
GatherImpl gather = conf.getGather();

特殊知识点复习

通过反射创建对象

String className = "com.briup.environment.server.DBStoreImpl";
DBStoreImpl dbstore = (DBStoreImpl)Class.forName(className).newInstance();

判断对象是否实现了某接口

Object o = new DBStoreImpl();
Boolean f = o instanceof ConfigurationAWare;
if(f) {
    //调用实现方法
    ((ConfigurationAWare) o).setConfiguration(...);
}

相关知识点复习

三种获取资源的方式

类加载器

maven 项目对应 src/main/resources
普通项目对应 src

InputStream is = Test.class.getClassLoader().getResourceAsStream("a.txt");

普通方式

FileInputStream fis = new FileInputStream("src/main/resources/a.txt");

.java文件放在一起

InputStream is = Test.class.getResourceAsStream("a.txt");

results matching ""

    No results matching ""