美文网首页
springboot 框架集成(二)

springboot 框架集成(二)

作者: amazing_s10plus | 来源:发表于2019-06-16 17:48 被阅读0次

参考 https://juejin.im/post/5caed4e4e51d456e27504b80
这是一个单体应用,使用springboot框架集成druid,redis,spring security,是一个最佳实践的框架,可以基于这个框架开发出不同的springboot项目。

1. mybatis-plus自动生成代码

#此处为本项目src所在路径(代码生成器输出路径)
outputDir=/chins-springboot-core/src/main/java
#父的包名
setParent=com.chins.springboot.core
#是否覆盖文件   默认是false    如果生成的代码有改动的话  在没有确认之前不要改成true  否则会把文件覆盖  丢失代码
fileOverride=false
#数据库地址
url=jdbc:mysql://192.168.0.102:3306/chins_springboot?useUnicode=true&characterEncoding=UTF-8&useSSL=false
#数据库驱动
driverClass=com.mysql.cj.jdbc.Driver
#数据库用户名
userName=root
#数据库密码
passWord=123456

public class CodeGenerator {

  /**
   * 获取控制台上的内容
   *
   * @param tip 控制台输入的内容
   */
  public static String scanner(String tip) {
    Scanner scanner = new Scanner(System.in);
    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder.append("请输入" + tip + ":");
    System.out.println(stringBuilder.toString());
    if (scanner.hasNext()) {
      String ipt = scanner.next();
      if (StringUtils.isNotEmpty(ipt)) {
        //输入的不是空就返回
        return ipt;
      }
    }
    throw new MybatisPlusException("请输入正确的" + tip + "! ");
  }

  public static void main(String[] args) {

    ResourceBundle resource = ResourceBundle.getBundle("myBatisPlus");
    String outPutDir = resource.getString("outputDir");
    Boolean fileOverride = false;
    if ("true".equals(resource.getString("fileOverride"))) {
      fileOverride = true;
    }
    String url = resource.getString("url");
    String driverClass = resource.getString("driverClass");
    String userName = resource.getString("userName");
    String passWord = resource.getString("passWord");
    String setParent = resource.getString("setParent");
//    String mapperPath = resource.getString("mapperPath");

    //代码生成器
    AutoGenerator mpg = new AutoGenerator();

    //全局配置
    GlobalConfig gc = new GlobalConfig();
    //生成的文件输出到哪
    String projectPath = System.getProperty("user.dir");
    gc.setOutputDir(projectPath + outPutDir);
    //默认主键生成策略为uuid
    // AUTO(0),
    //    NONE(1),
    //    INPUT(2),
    //    ID_WORKER(3),
    //    UUID(4),
    //    ID_WORKER_STR(5)
    gc.setIdType(IdType.AUTO);
    gc.setOpen(false);
    gc.setFileOverride(fileOverride);
    gc.setAuthor("chins");
    gc.setBaseColumnList(true);
    gc.setBaseResultMap(true);

    gc.setEntityName("%sEntity");
    gc.setMapperName("%sDao");
    gc.setServiceName("%sService");
    gc.setServiceImplName("%sServiceImpl");
    gc.setControllerName("%sController");
    mpg.setGlobalConfig(gc);
    //gc.setIdType(IdType.UUID);
    //是否开启Swagger2
    //gc.setSwagger2(true);
    //gc.setXmlName("%sDaoMapper");

    //数据源配置
    DataSourceConfig dsc = new DataSourceConfig();
    dsc.setDbType(DbType.MYSQL);
    dsc.setUrl(url);
    dsc.setDriverName(driverClass);
    dsc.setUsername(userName);
    dsc.setPassword(passWord);
    mpg.setDataSource(dsc);

    //包配置
    PackageConfig pc = new PackageConfig();
    pc.setParent(setParent);
    pc.setMapper("dao")
        .setService("service")
        .setController("controller")
        .setEntity("entity");
    mpg.setPackageInfo(pc);

    //策略配置
    StrategyConfig strategy = new StrategyConfig();
    //下划线到驼峰的命名方式
    strategy.setNaming(NamingStrategy.underline_to_camel);
    strategy.setColumnNaming(NamingStrategy.underline_to_camel);
    //使用lombok
    strategy.setEntityLombokModel(true);
    strategy.setRestControllerStyle(true);
    strategy.setInclude(scanner("表名"));
    strategy.setControllerMappingHyphenStyle(true);
    mpg.setStrategy(strategy);
    mpg.execute();
  }
}

注意:此处要在common的pom中手动添加代码生成器的依赖,和模板依赖,我这里使用默认的velocity模板

  <dependencies>
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-generator</artifactId>
      <version>3.1.1</version>
    </dependency>

    <dependency>
      <groupId>org.apache.velocity</groupId>
      <artifactId>velocity-engine-core</artifactId>
      <version>2.1</version>
    </dependency>
  </dependencies>

2. 运行主函数,可以看到成功生成了代码

我这里userMapper.xml的位置有点问题,没有生成在resource下面,我手动移动一下了。

3. 写一个测试流程,可以看到能够展示数据

image.png image.png

相关文章

网友评论

      本文标题:springboot 框架集成(二)

      本文链接:https://www.haomeiwen.com/subject/pumgfctx.html