zhangalex / superman

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

superman

superman是什么

superman是自定义的archetype,通过使用superman archetype可以生成满足我们项目需求的工程模板,提高开发效率的同时可以统一团队内的项目结构风格

开发环境

  • maven3.6.1
  • jdk1.8
  • IntelliJ IDEA 2018
  • win10 OS

supmen archetype技术选型

  • DB
    MySQL
  • ORM
    MyBatisPlus
  • Framework
    SpringBoot

DONE

  • SpringBoot、MyBatisPlus框架的整合
  • 统一异常的处理
  • 统一结果封装
  • log4j日志的配置
  • MybatisPlus
    • 代码生成器
    • 分页
    • 逻辑删除

TODO

  • 工具类的整合
  • 常用中间件的封装

Quick Start【快速使用】

  • 1.下载源码

    git clone https://github.com/TiantianUpup/superman.git
    
  • 2.打开superman工程,将其安装到本地仓库
    运行命令前先切换到20190815-v2update分支,master分支被我玩坏了【真丢人!!!】
    运行如下命令

    mvn clean install
    
  • 3.使用自定义archetype初始化项目

    mvn archetype:generate 
    -DgroupId=com.h2t.test 
    -DartifactId=superman-demo 
    -Dversion=1.0.0-SNAPSHOT 
    -DarchetypeGroupId=com.h2t.study 
    -DarchetypeArtifactId=superman -DarchetypeVersion=0.0.1-SNAPSHOT -X -DarchetypeCatalog=local
    

    参数说明
    -DgroupId组ID,默认项目的包名的组ID相同
    DartifactId:项目唯一标识符,即项目名称
    -DarchetypeGroupId:superman的组ID,值不需要进行修改
    -DarchetypeArtifactId:superman的artifactId,值不需要进行改变

  • 4.修改resources文件夹下的配置文件,并将resources文件标记成Resources Root

    该文件夹下有application.propertieslogback.propertieslogback-spring.xml三个配置文件

    • application.properties配置文件的修改 application.properties 主要是SpringMyBatisPlus和数据库的配置信息

      spring.datasource.url=jdbc:mysql://localhost:3306/your_database?characterEncoding=UTF8&serverTimezone=UTC
      spring.datasource.username=root
      spring.datasource.password=your password
      

      修改数据库、密码,默认用户名为root

      mybatis-plus.mapper-locations=classpath*:/mapper/*.xml  
      # mybatis-plus.type-aliases-package=
      

      指定MybatisPlus实体类别名的包,即model模块的po层包名,默认MybatiPlusmapper文件保存在resource下的mapper文件夹下,可自行修改

    • logback.properties配置文件的修改 logback.properties定义了error级别日志和info级别日志的保存地址

      LOG_ERROR_HOME=  
      LOG_INFO_HOME=
      
      • logback-spring.xml配置文件的修改 logback-spring.xml主要是日志输出规则的定义,若为windows系统无需进行修改,若为linux osmac os,则需修改日志保存地址
      <fileNamePattern>${LOG_ERROR_HOME}//%d.log</fileNamePattern>
      

      //修改为/

  • 5 使用代码生成器生成controllerservicedaopo层代码 代码生成器类位于service模块下的generator包下,只需要初始化几个字段值运行就可以生成相应的代码。在运行前首先在项目根目录下创建一个mp-generator-output文件夹,该文件夹的名字和OUTPUT_DIR字段值保持一致

    • PACKAGE_NAME
      生成代码的包名,和项目的包名一致,负责复制过去代码会有一些小问题 -OUTPUT_DIR 生成代码保存文件地址,默认保存在项目下的mp-generator-output文件夹下,可以修改为自定义保存地址
    • AUTHOR
      注释中作者的名字
    • DRIVER_NAME
      数据库驱动
    • HOST
      数据库主机号
    • PORT
      数据库端口
    • DATABASE
      数据库名字
    • USERNAME
      数据库用户名
    • PASSWORD
      数据库密码
  • 6.将生成的代码移动到对应模块对应包下

    • controller文件夹
      实体类对应的Controller,将该目录下的类移到web模块下的controller包下

    • mapper文件夹 实体类对应的DAO层,该目录下包含xml文件和对应实体的接口类,将xml文件移到dao模块resource 下的mapper文件夹下,需自行建立mapper文件夹,将接口移到dao模块下的mapper包下并在接口类上添加@Mapper注解,需自行建立 mapper包。同时将resource文件夹标记成Resources root

    • service 对应实体类接口

      • impl 对应实体类接口实现类

      service目录下的接口移到service模块下的service包下,impl目录下的类移到service模块下的service.impl包下

    • po文件夹 将该目录下的类移到model模块下的po包下,并修改继承关系,统一继承BasePO类,因为BasePO类 包含了idgmtCreategmtModifieddeleted这些数据库基本字段,需将生成的实体类手动删除这些重复字段。同时自动生成的po类缺失了@TableName@TableField注解需手动补充。注解的使用方式可参考BasePO

  • 7.修改web模块aspect包下的环绕通知

    @Around("execution(* yourpackage.controller..*(..))")
    

    该切面主要用于拦截controller层返回的结果,将其封装成统一结果返回

  • 8 启动项目
    web模块下的Runner类为启动类,运行该类即可启动,默认端口为8081

附:superman archetype生成demo工程地址

About