最近学的比较杂,以至于我写这篇博客的时候,一时不知该从何说起,我想我应该从她说起,她是谁,我后端路上的助力手---IDEA ,刚开始接触idea应该是15年初,学学Android就用了AS,基于IDEA的一款工具,后来后端路上任务重了,就暂时放开了Android。再次接触IDEA是15年11月份的时候,离开了用了2年多的Eclipse,上手很快,界面很细腻,一个字:棒。
在ZHB大半年,来的时候项目已经骨架已经搭建完了,一直做的都是在项目的基础上修修改改,反正我也不具备搭架构的能力,一直到PHP吉吉大神问我一些mybatis的问题,mybatis才又重新回到我的视野。
重新来弄mybatis,算是复习吧,首先创建配置文件,写着写着就想到了eclipse上有一个mybatis的插件,主要是用来代码提示和构建配置文件骨架的。IDEA上应该也有一个插件,就去搜了一下,
QQ20160317-0@2x.png
没想到这家伙竟然从2.4版本开始收费了,无奈,只能破解了。【官网】
步骤
- 1、在IDEA中安装插件
- 2、使用javassist修改idea mybatis插件
a. 下载javassist.jar
b. 将mybatis_plus.jar复制到某一工作目录下, 同时也将(a)中下载的javassist.jar放到该目录下
cp ~/Library/Application Support/IntelliJIdea2016.1/mybatis_plus/lib/mybatis_plus.jar ~/Docment/
c. 反编译查看源码:使用 【JD-GUI】打开 mybatis_plus.jar,查看源码
1.png
2.png
d. 使用javassist修改字节码,新建MyCrack.java
cd ~/Document/
vim MyCrack.java
#将以下内容复制到MyCrack.java中
import javassist.*;
public class MyCrack {
public static void main(String[] args) throws Exception {
ClassPool pool = ClassPool.getDefault();
CtClass c = pool.get("com.seventh7.mybatis.util.JavaUtils");
CtMethod m = c.getDeclaredMethod("refValid");
m.setBody("{ validated = true; valid = true; return valid; }");
c.writeFile();
CtClass cc = pool.get("com.seventh7.mybatis.service.JavaService");
CtMethod mm = cc.getDeclaredMethod("stop");
mm.setBody("{ return; }");
cc.writeFile();
}
}
e. 编译运行MyCrack.java
javac -classpath ".:javassist-3.20.0-GA.jar:mybatis_plus.jar" MyCrack.java
java -classpath ".:javassist-3.20.0-GA.jar:mybatis_plus.jar" MyCrack
此时会在当前目录下生成修改过的两个类文件
com/seventh7/mybatis/service/JavaService.class
com/seventh7/mybatis/util/JavaUtils.class
f. 替换class文件
# 解压jar包,-d 表示指定目录
unzip mybatis_plus.jar -d ./test
# cp步骤f中产生的class文件到解压后的相应目录下
#打包成jar
jar cvfm mybatis_plus.jar test/META-INF/MANIFEST.MF -C test/ .
#上面命令表示将test目录下的所有文件都打成jar包,MANIFEST.MF表示清单文件
- 3、替换:
cd ~/Library/Application Support/IntelliJIdea2016.1/mybatis_plus/
# 可以先见目录下的lib文件夹压缩备份,免得不成功,又得卸载重新安装
tar cvf lib.tar.gz lib/
# 复制2中生成的mybatis_plus.jar到mybatis插件的安装目录cp ~/Document/mybatis_plus.jar ~/Library/Application Support/IntelliJIdea15/mybatis_plus/lib/
#重启IDEA即可,windows用户用法类似
以上即为破解,第二篇将讲讲插件的使用,特别是使用插件生成mapper文件和接口。
第三篇进入正题,讲讲mybatis的单独使用及其与Spring的集成。