1
hxlx OP mybatis 的 dao 为什么使用接口啊?这样子做的好处或者目的是什么啊?
|
2
loshine1992 2015-11-23 23:00:13 +08:00
减少大量重复的代码,由代理对象实现,开发者专注写 sql 就可以了。。
|
3
hxlx OP @loshine1992 初学者表示不懂啊,为什么这样子就可以减少重复的代码啊?什么代理对象啊?不用接口,开发者就不能专注写sql了吗??请原谅我的无知
|
4
Gonster 2015-11-23 23:18:25 +08:00
@hxlx 只写 mybatis xml mapper ,你觉得没有接口你怎么调用它呢?
接口不变可以用不同的实现,更换 mybatis dsl 的 XML mapper ,接口不变上层不受影响。还有就是有接口 mybatis 做 auto-proxy 比较方便吧。 另外如果感兴趣的话可以考虑看一下 https://github.com/mybatis/mybatis-3/blob/master/src/main/java/org/apache/ibatis/binding/MapperProxy.java 一些源码实现,想想你只写了接口和 xml ,你怎么能够通过调用接口就能使用到你没有写的 java 实现类,具体关键字应该是 auto proxy 还有字节码生成, jdk 反射包下有一套实现。还有一些其他的比如用 cglib 和 javassist 的实现等等。 |