转载

Java相同全限定名的类加载顺序

相同的类指:类的全限定名一样

问题:怎么优先加载自己写的类

  1. 解析:
class文件所在位置, 直接在classpath下, 在jar包中 a: 相同的类, 一个在web-inf/classes目录下, 一个在jar包中: 此时优先加载classes目录下的class文件 b:相同的类, 都在jar包中:此时按照jar的装载顺序, 简单的如果没有其他的特殊处理, 就按照jar包的名字排序。 如先加载aa.jar中的文件, 再加载bb.jar中的文件
  1. 结论
a.将.class文件放在classes文件夹下 b.如果所有的class被打包为jar, 就修改jar包的名字, 保证先加载自己的jar包。
框架自身的类BaseClass对所有的访问做了aop(即http请求—->BaseClass—请求日志—>http要请求的目标方法——>BaseClass——>响应给http),所有的出参、入参都会被打印出日志来。 有些日志是不需要的, 为了不显示这些api的日志, 就需要对BaseClass改造。改造后要让框架优先加载自己复写的BaseClass类。
正文到此结束
Loading...