模块需求分析
配置模块,将需要改动的值专门放到一个 xml
配置文件中,通过 xml
解析实现读取配置文件
通过反射创建对象
核心功能实现
模仿 Spring
框架
IOC
控制反转
之前获取对象的方式 需要了就 new
对象,程序员主动去 new
而框架是提前把所需要的对象创建好,放入一个大容器,程序员需要的时候,直接通过公共接口从容器中去除即可。对象的创建销毁,以及对象之间复杂关系的管理,全部由框架完成
程序员使用配置文件来控制框架行为
DI
依赖注入
实例化对象时,如果需要其他成员,则 xml
文件中配置好值
需要的依赖对象/配置信息,提前注入
步骤
- 解析
xml
文件获取map
、properties
- 如果需要使用对象 从
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");