查看 maven下jar包依赖的来源?
$ mvn dependency:tree
某个jar包里已经有类A,我现在在项目P1新建了相同路径相同名字的类A1,如何使得类加载时加载我的类而非类A?
析:如果仅仅是在同一个项目P1下,默认会加载我自己的类;而如果想把P1当作外部依赖引入到项目P2中,此时P1和类A所在的jar都是P2的外部依赖,那么就看先加载哪个依赖了,所以可以把P1的maven 放到类A的maven前面,这样就可以先加载到我的类。
注:在自定义Logger类引用时,出现了There is no conversion class registered for conversion word [Logger],需要在logback-spring-common.xml中加上:
<configuration scan="true">
<!-- 加上-->
<conversionRule conversionWord="Logger" converterClass="ch.qos.logback.classic.pattern.LoggerConverter" />
。。。
</configuration>
jar包下已经有类A,我现在新建了一个同名类A,在开发时如何区分调用时调的是哪个A?
析:比较好的办法是先写一个接口 Inter,然后让我的A实现接口Inter,在调用时:
A aa = new A();
// 表明是我的A
if( aa instanceof Inter ){
aa.method(); // Inter里的方法
}
数据排行榜
从db查出数据后,存到redis,之后查询就是查Redis缓存里的数据。并且Redis数据设置过期时间,到期就会重新查db再次写入redis。存在问题:分布式时同时写入redis咋办?析:可以使用分布式锁RedisLock,使用注意事项:
数据写入redis的单独的方法me须是public,在外部调用方法me时,需要能够切面代理,才能真正用到锁。
((Class t)AopContext.currentProxy()).me();
之前需要在整个Application类上加上 @EnableAspectJAutoProxy(exposeProxy = true)