代码自动生成(一)

方便的工具都是懒人设计的;

从开始项目在正式的项目中写代码到目前已经快六个年头了,从最开始的不懂得什么是封装到后来参考他人的代码封装,在到后来的自己对代码的封装;一路上经历太多太多的CURD,写了太多的基础的业务增删改查的代码,现在终于静下心来为自己封装一套自动代码生成的工具了;

在写该项自动代码生成之前,我封装了一套基础的jar包,主要包含工具类,比如IO,多线程,basedao,baseservice,基础类等,这样基本的curd只需要集成相应的类即可,基本的功能都已经实现了,也就是用户只需要写控制层即可;

业务也在发展,技术也在更新;自己要学的东西也太多,于是在基础的第一版封装的jar包的基础上进行了改进;

目前用到的是springcloud,个人也是从springboot开始学起,那么下面就是在springboot的基础上进行了一次封装,然后引业务太多,无暇与太多的时间建立类或者接口,写了一套基于freemarker模板的代码;

数据访问层用的是mybatis,这里生成对应的mapper.xml的时候比较麻烦,其中该项模板我就整理了一天的时间,下面会讲到;

首先讲一下基本的在这次自动生成代码中用到的freemarker中的类文件;

1.Configuration类

 相信很多jar中都有自己的configuration类,基本的配置类,需要的配置信息都在此类中;

设置编码格式.encoding 一般情况下是用的utf-8

此类加载模板文件路径   通过config.setDirectoryForTemplateLoading来设置freemarker模板所在的路径;获取路径所用到的方法我会在底部说明下;

2.Template类

此类是整个内容的关键;

通过config.getTemplate(templateName);获取模板;




因为在项目中需要获取相应的文件,那么首先要知道路径,下面讲一下获取路径的几种方法:

        System.out.println(this.getClass().getResource("/").getPath());
        System.out.println(this.getClass().getResource("").getPath());
        
        System.out.println(this.getClass().getResource("/").getFile());
        System.out.println(this.getClass().getResource("").getFile());
        
        System.out.println(System.getProperty("user.dir"));

分别输出:

media/B/workspace/wdcloud/wdcloud-code/target/classes/
/media/B/workspace/wdcloud/wdcloud-code/target/classes/com//common/code/autocode/
/media/B/workspace/wdcloud/wdcloud-code/target/classes/
/media/B/workspace/wdcloud/wdcloud-code/target/classes/com//common/code/autocode/





你可能感兴趣的:(SpringBoot)