用反射+配置文件
定义配置文件
src下new file。新建 加载配置文件。Properties里面有一个load方法,可以加载.properties结尾的配置文件 加载到内存中 获取字节码文件对应的类的加载器,用这个类加载器加载到内存 这样就有了ClassLoader ClassLoader下面以偶getResource的方法是获取资源的路径 getResourceAsStream获取资源对应的字节流 这样就返回了字节流 把字节流传到load方法里面,就完成了加载了。 再抛出异常 抛出IO异常
获取配置文件中定义的数据
获取到要加载的全类名,以及要加载的方法的方法名
反射
根据全类名返回一个class对象
创建对象 newInstance() 获取方法对象,暂时任务是 无参的 invoke执行方法运行程序
现在配置的Person类的eat方法 修改配置文件 Student的sleep的方法 这就是框架的基本内部原理
最终目录结构