Skip to content

快速开始

根据实际需求, 可分为如下两种使用方式:

  • 原型构建: 利用原型快速生成一整套项目代码, 适合从零开始搭建的业务系统
  • 组件集成: 使用考拉提供的多种组件, 快速增加项目功能, 适合正在编码中或已上线的业务系统

原型构建

  1. 在Maven配置文件setting.xml中引入考拉仓库:
xml
<settings>
    <profiles>
        <profile>
            <id>koala</id>
            <repositories>
                <repository>
                    <id>koala</id>
                    <name>Koala Maven Repository</name>
                    <url>https://raw.github.com/koala-projects/maven-repositories/snapshot/</url>
                    <snapshots>
                        <enabled>true</enabled>
                        <checksumPolicy>warn</checksumPolicy>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>koala</activeProfile>
    </activeProfiles>
</settings>
<settings>
    <profiles>
        <profile>
            <id>koala</id>
            <repositories>
                <repository>
                    <id>koala</id>
                    <name>Koala Maven Repository</name>
                    <url>https://raw.github.com/koala-projects/maven-repositories/snapshot/</url>
                    <snapshots>
                        <enabled>true</enabled>
                        <checksumPolicy>warn</checksumPolicy>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
    </profiles>
    <activeProfiles>
        <activeProfile>koala</activeProfile>
    </activeProfiles>
</settings>
  1. 选择合适的原型:
原型名称原型说明
koala-web-applicationWeb应用通用原型, 内置系统管理/代码生成等功能
  1. 使用Maven命令生成项目:
bash
mvn archetype:generate ^
 -DarchetypeGroupId=cn.koala ^
 -DarchetypeArtifactId=koala-web-application ^
 -DarchetypeVersion=2023.1.4 -X ^
 -DgroupId=cn.houtaroy ^
 -DartifactId=test ^
 -Dversion=2023.0.0-SNAPSHOT ^
 -Dpackage=ch.houtaroy.test
mvn archetype:generate ^
 -DarchetypeGroupId=cn.koala ^
 -DarchetypeArtifactId=koala-web-application ^
 -DarchetypeVersion=2023.1.4 -X ^
 -DgroupId=cn.houtaroy ^
 -DartifactId=test ^
 -Dversion=2023.0.0-SNAPSHOT ^
 -Dpackage=ch.houtaroy.test
参数名称参数描述参数示例
-DarchetypeGroupId原型groupIdcn.koala
-DarchetypeArtifactId原型artifactIdkoala-web-application
-DarchetypeVersion原型版本2023.1.4
-DgroupId项目groupIdcn.houtaroy
-DartifactId项目artifactIdtest
-Dversion项目版本2023.0.0-SNAPSHOT
-Dpackage项目包名cn.houtaroy.test
...原型额外参数额外参数请参照原型文档

组件集成

  1. 增加考拉提供的Maven仓库和依赖清单, 修改pom.xml:
xml
<repositories>
  <repository>
    <id>koala</id>
    <name>koala</name>
      <url>https://raw.github.com/koala-projects/maven-repository/main/releases/</url>
      <!--<url>https://gitee.com/koala-projects/maven-repository/raw/main/releases/</url>-->
  </repository>
</repositories>

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>cn.koala</groupId>
      <artifactId>koala-dependencies</artifactId>
      <version>2023.1.4</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>
<repositories>
  <repository>
    <id>koala</id>
    <name>koala</name>
      <url>https://raw.github.com/koala-projects/maven-repository/main/releases/</url>
      <!--<url>https://gitee.com/koala-projects/maven-repository/raw/main/releases/</url>-->
  </repository>
</repositories>

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>cn.koala</groupId>
      <artifactId>koala-dependencies</artifactId>
      <version>2023.1.4</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>
  1. 组件列表中选取自己需要的组件:

    组件名称组件说明
    koala-admin-client-starter快速集成Spring Boot Admin Client
    koala-admin-server-starter快速集成Spring Boot Admin Server, 提供高级通知方式
    koala-attachment-starter提供了附件上传和下载功能
    koala-authorization-server-starter快速集成 Spring Authorization Server, 提供 OAuth 2.1 认证授权服务
    koala-boot-starter提供了 ApplicationRunner 拓展功能
    koala-cache-starter快速集成Redis缓存, 抽象了缓存条件配置
    koala-code-gen-starter提供了代码生成功能
    koala-data-source-starter提供了动态切换多数据源的功能
    koala-database-starter提供了数据库管理功能
    koala-log-starter提供了操作日志功能
    koala-minio-starter快速集成MinIO对象存储, 自动注入操作客户端
    koala-mybatis-starter持久化功能的 MyBatis 版本实现
    koala-persist-starter定义部分持久化功能, 如模型/仓库/服务/实体监听器等
    koala-post-office-starter提供了 邮件 / 短信 / 企业微信 等消息发送功能
    koala-powerjob-worker-starter快速集成PowerJob Worker, 拓展Groovy任务处理器
    koala-query-starter提供了自定义SQL语句查询统计数据的功能
    koala-resource-server-starter提供资源服务和接口权限功能
    koala-rocketmq-starter快速集成Apache RocketMQ, 提供 Spring Boot 3 适配
    koala-sensitive-word-starter提供了敏感词过滤功能, 支持 Jackson
    koala-system-starter提供了用户管理/角色管理/部门管理/字典管理功能
    koala-task-starter快速集成 Spring Scheduling 功能, 实现基于数据库的任务配置
    koala-template-starter提供了模板组管理/模板管理功能
    koala-validation-starter提供了参数校验功能, 支持提示消息自定义
    koala-web-starter抽象出通用返回模型, 增加全局异常拦截器
    koala-wechat-mini-app-starter快速集成微信小程序功能, 实现微信用户与系统用户绑定
  2. 引入组件依赖, 以系统管理为例, 修改pom.xml:

xml
<dependencies>
  <dependency>
    <groupId>cn.koala</groupId>
    <artifactId>koala-system-starter</artifactId>
  </dependency>
</dependencies>
<dependencies>
  <dependency>
    <groupId>cn.koala</groupId>
    <artifactId>koala-system-starter</artifactId>
  </dependency>
</dependencies>

初始化数据库

2023.1.2 版本开始, 考拉默认使用 Flyway 作为数据库版本管理工具

  1. 引入 Flyway 依赖:
xml
<dependency>
  <groupId>org.flywaydb</groupId>
  <artifactId>flyway-core</artifactId>
  <version>9.21.1</version>
</dependency>
<dependency>
  <groupId>org.flywaydb</groupId>
  <artifactId>flyway-core</artifactId>
  <version>9.21.1</version>
</dependency>
  1. 引入 Flyway 数据库依赖:
xml
<dependency>
  <groupId>org.flywaydb</groupId>
  <artifactId>flyway-mysql</artifactId>
  <version>9.21.1</version>
</dependency>
<dependency>
  <groupId>org.flywaydb</groupId>
  <artifactId>flyway-mysql</artifactId>
  <version>9.21.1</version>
</dependency>
  1. 数据库脚本目录下选择项目数据库类型的数据库脚本, 移入项目目录 resources/db/migration :
db
|--migration
|  |--mysql
|    |--V2023.1.2.1__create_table.sql
|    |--V2023.1.2.2__insert_default_data.sql
db
|--migration
|  |--mysql
|    |--V2023.1.2.1__create_table.sql
|    |--V2023.1.2.2__insert_default_data.sql

若不想使用 Flyway, 直接在数据库中执行对应的脚本文件即可