mybatis-generator源码解读系列(一):代码入口以及主要命令行参数

一、寻找入口类

读源码也可以说是一种逆向工程,最重要的就是要知道从哪里开始读代码。对于java二进制程序则最重要的就是找到main函数,找到main函数后才能知道执行逻辑是如何开始的。我们首先看一下mybatis-generator是如何开始的呢?mybatis-generator执行脚本如下(gen.bat):

java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite

我们可以发现是用java执行的可执行jar包mybatis-generator-core-1.3.2.jar,重要我们就会想起jar文件中会有一个\META-INF 目录,目录下面有一个文件MANIFEST.MF,里面内容很多,找到Main-Class:关键字行即可,内容如下:

Main-Class: org.mybatis.generator.api.ShellRunner

如上所示类org.mybatis.generator.api.ShellRunner就是我们要解读源码的入口

二、命令行参数

找到入口函数后就可以到源码中根据类路径找到该类,在解读main入口函数之前,先看一下命令行参数如下

    private static final String CONFIG_FILE = "-configfile"; //$NON-NLS-1$
    private static final String OVERWRITE = "-overwrite"; //$NON-NLS-1$
    private static final String CONTEXT_IDS = "-contextids"; //$NON-NLS-1$
    private static final String TABLES = "-tables"; //$NON-NLS-1$
    private static final String VERBOSE = "-verbose"; //$NON-NLS-1$
    private static final String FORCE_JAVA_LOGGING = "-forceJavaLogging"; //$NON-NLS-1$
    private static final String HELP_1 = "-?"; //$NON-NLS-1$
    private static final String HELP_2 = "-h"; //$NON-NLS-1$

-config:配置文件,也是我们自动代码对应的xml文件,从后面的执行逻辑可以看出,这个文件是必须有的。它包含了jdbc的类路径驱动包、jdbc相关连接参数信息、接口相关参数信息、领域对象相关参数信息以及要生成代码的表信息等等。

-overwrite:默认下载时带此参数,表示如果之前已经生成过代码,但是还是要用新的进行覆盖;可以忽略此参数。

-contextids:上下文表示,用逗号分隔;可以忽略。

-table:从命令行传入生成的表,用逗号分隔;可以忽略。

-verbose:控制台是否输出详细过程日志;可忽略。

-forceJavaLogging:强制java日志;可忽略。

-?:显示帮助信息,将忽略其他信息,不执行代码生成。

-help:同“?”。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值