Spring 容器(一)
Source
null instanceof Object 语法是正确的
Source定义得到输入流的方法
Resource继承Source,定义判断流是否存在、是否打开等方法
BaseResource实现了Resource,但返回都是默认值,如0或null
ContextResource继承Resource,定义了取得上下文路径的方法
WriteResource继承Resource,定义了取得输出流、判断是否可写的方法。 Q:为什么不单独定义一个Writable接口,然后再用WriteResource继承Writable和Resource?
AbstractResource是文件资源的抽象类,很多方法抛出异常,让子类来实现。而判断资源是否存在,则自己实现,子类不需要序实现。判断是否存在,是先判断文件是否存在,如果抛出异常,则转变成判断输入流是否存在。
ResourceUtils能把url转变成uri
file.toUrl()过期了,所以用file.getUrI().getUrl()
可以直接调用抽象类的静态方法
静态方法必须定义在顶级域或静态域里
ReflectionUtils.handleInvocationTargetException()可以把反射的异常转变成RuntimeException:UndeclaredThrowableException