说下我对AOP的理解:AOP是给程序添加统一功能的一种技术。在代码层面上来说,AOP就是在必要的业务代码中织入业务无关的、统一的代码的一种技术。在实现AOP的时候,通常努力争取的目标是对业务代码无侵入或是低侵入。 平时用得比较多的是Spri
[阅读更多...]-
理解AOP
-
读史乱想一二三
王莽的出色之处在于隐忍、在于偏执。失败之处在于过度理想主义。他因为恪守古礼而得一时之利,于是便认为这条路是正确的,最后就不切实际地一条路走到黑。 杨广在治政上是有大格局的,可惜在个性上不够成熟。他的个性过于锋利、过于急切,因之容易急功近利好
[阅读更多...] -
使用ThreadLocal
之前和同事讨论过一个日期格式化的问题,程序比较简单,大体是这样: 同事并不喜欢这个代码。原因是每调用一次format方法都会创建一个SimpleDateFormat对象。虽然我一再强调SimpleDateFormat对象是方法内的,即生即灭
[阅读更多...] -
jar包中的jar
前两天在整理一个工程的时候突发奇想,能不能把需要的jar都打到一个类似于war包的jar包里面去,但是不解开原始jar包,而是将之统一放到外面jar包中的一个lib目录下。 按这个思路试了好几次,都遇到了NoClassDefFoundErr
[阅读更多...] -
Gradle中的“provided”
maven中值为provided的scope,可以让我们声明一个只在编译时使用的非传递性的依赖。在gradle中我们可以声明compileOnly依赖来实现类似的效果(需要java插件)。示例如下: compileOnly声明的使用场景可以
[阅读更多...] -
Gradle依赖排除
在引用依赖时经常会有这样的问题:某些间接引用的依赖项是不需要的;产生了依赖冲突。此时需要排除一些依赖。 下面的内容介绍了几种在gradle中排除依赖的方式。 在dependency中排除 这种方式是粒度最细的,也是最为繁琐的。此时可以考虑全
[阅读更多...] -
spark使用kafka报NoSuchMethodError
运行spark任务消费kafka时,报了如下的异常: 使用的spark版本是1.6.1,kafka版本是0.8.2.1。 根据异常信息猜测应该是scala版本导致的问题。 查看了一下依赖的spark和kafka的配置为: 依赖项直接copy
[阅读更多...] -
gradle: No cached version of org.scala-lang
在idea中使用gradle构建项目时总是提示失败,发现报错信息如下: 看了一下,关键是最后一行: 印象中并没有设置过离线模式。看了一下idea中gradle的设置,发现存在相关的默认设置“Offline work”。取消勾选“Offlin
[阅读更多...] -
清理idea缓存
使用idea的时候,有时调整了文件结构或pom文件就会报一些莫名其妙的错误。之前的解决方式是:打开应用目录,删除掉一系列idea生成的工程文件,而后再用idea重新打开就行了。 现在发现了一个新的解决方式:选择 菜单 -> File
[阅读更多...] -
从一段计时代码开始
下面这段代码估计是我们见过(或写过)最多的代码了: 要统计某些逻辑块的执行时间,这段代码可以说是非常简单且有效。不过如果要统计的方法很多时,为那些方法都填上这段代码就有些让人头疼了。主要有这样几个问题: 太多的重复工作; 计时内容散乱不好整
[阅读更多...]