致一
预则立,不预则废
http://www.zhyea.com-
理解AOP
说下我对AOP的理解:AOP是给程序添加统一功能的一种技术。在代码层面上来说,AOP就是在必要的业务代码中织入业务无关的、统一的代码的一种技术。在实现AOP 的时候,通常努力争取的目标是对业务代码无侵入或是低侵入。 平时用得比较多的是Spring中的AOP实现,还有一些比如Spring中的shiro权限验证,@C achable注解等在某种程度上也可以认为是AOP。在Spring AOP之外还有 …阅读全文 -
读史乱想一二三
王莽的出色之处在于隐忍、在于偏执。失败之处在于过度理想主义。他因为恪守古礼而得一时之利,于是便认为这条路是正确的,最后就不切实际地一条路走到黑。 杨广在治政 上是有大格局的,可惜在个性上不够成熟。他的个性过于锋利、过于急切,因之容易急功近利好大喜功,一旦少有挫折也就容易颓废自丧。观其一生功业,除掉征高丽的失利,征 西域、迁都、修运河,都可以拿来作为明君的功绩。可惜,最后这些都为唐做了嫁衣裳。 …阅读全文 -
使用ThreadLocal
之前和同事讨论过一个日期格式化的问题,程序比较简单,大体是这样: [代码片段] 同事并不喜欢这个代码。原因是每调用一次format方法都会创建一个Simpl eDateFormat对象。虽然我一再强调SimpleDateFormat对象是方法内的,即生即灭,不会导致明显的内存或性能上的问题。但是同事还是打算尝试一 下。一段时间后我看到了下面的代码: [代码片段] 他使用了ThreadLoc …阅读全文 -
jar包中的jar
前两天在整理一个工程的时候突发奇想,能不能把需要的jar都打到一个类似于war包的jar包里面去,但是不解开原始jar包,而是将之统一放到外面jar包中的一 个lib目录下。 按这个思路试了好几次,都遇到了NoClassDefFoundError。一开始以为是manifest中配置有误,在几次尝试调整manife st文件仍然失败之后,觉得有必要查看一些类似的案例。 类似的案例比如Spri …阅读全文 -
jar包中的jar
前两天在整理一个工程的时候突发奇想,能不能把需要的jar都打到一个类似于war包的jar包里面去,但是不解开原始jar包,而是将之统一放到外面jar包中的一 个lib目录下。 按这个思路试了好几次,都遇到了NoClassDefFoundError。一开始以为是manifest中配置有误,在几次尝试调整manife st文件仍然失败之后,觉得有必要查看一些类似的案例。 类似的案例比如Spri …阅读全文 -
jar包中的jar
前两天在整理一个工程的时候突发奇想,能不能把需要的jar都打到一个类似于war包的jar包里面去,但是不解开原始jar包,而是将之统一放到外面jar包中的一 个lib目录下。 按这个思路试了好几次,都遇到了NoClassDefFoundError。一开始以为是manifest中配置有误,在几次尝试调整manife st文件仍然失败之后,觉得有必要查看一些类似的案例。 类似的案例比如Spri …阅读全文 -
Gradle中的“provided”
maven中值为provided的scope,可以让我们声明一个只在编译时使用的非传递性的依赖。在gradle中我们可以声明compileOnly依赖来实现 类似的效果(需要java插件)。示例如下: [代码片段] compileOnly声明的使用场景可以一言蔽之:声明的依赖只在compile阶段使用,但是不会在runtime阶段用到,并且这种依赖也是非传递性的。 ###### …阅读全文 -
Gradle中的“provided”
maven中值为provided的scope,可以让我们声明一个只在编译时使用的非传递性的依赖。在gradle中我们可以声明compileOnly依赖来实现 类似的效果(需要java插件)。示例如下: [代码片段] compileOnly声明的使用场景可以一言蔽之:声明的依赖只在compile阶段使用,但是不会在runtime阶段用到,并且这种依赖也是非传递性的。 ###### …阅读全文 -
Gradle依赖排除
在引用依赖时经常会有这样的问题:某些间接引用的依赖项是不需要的;产生了依赖冲突。此时需要排除一些依赖。 下面的内容介绍了几种在gradle中排除依赖的方式。 在dependency中排除 [代码片段] 这种方式是粒度最细的,也是最为繁琐的。此时可以考虑全局设置。 在全局配置中排除 全局配置是在configuration中完成的。 [代码片段] 禁用传递依赖 …阅读全文 -
Gradle依赖排除
在引用依赖时经常会有这样的问题:某些间接引用的依赖项是不需要的;产生了依赖冲突。此时需要排除一些依赖。 下面的内容介绍了几种在gradle中排除依赖的方式。 在dependency中排除 [代码片段] 这种方式是粒度最细的,也是最为繁琐的。此时可以考虑全局设置。 在全局配置中排除 全局配置是在configuration中完成的。 [代码片段] 禁用传递依赖 …阅读全文