快速开始

购买 SoloAdmin 拿到源码后,需要进入如下步骤:

  1. 创建数据库
  2. 将源码导入 idea 或者 eclipse 等开发工具
  3. 编译 SoloAdmin
  4. 运行 SoloAdmin
  5. 通过代码生成器,生成自己的业务模块
  6. 定义后台菜单组
  7. 编写 Controller 代码,并生成菜单

创建数据库

SoloAdmin 源码内置了一个叫SoloAdmin.sql 的脚本,创建好数据库后,将该脚本导入即可。但需要注意的是,数据库一定要选择编码 utf8mb4 。

将源码导入开发工具

代码目录结构如下


├── pom.xml
├── core-codegen (代码生成器)
│   ├── pom.xml
│   ├── src
│   
├── core-commons
│   ├── pom.xml
│   ├── readme.md
│   ├── src
│   
├── core-devops (DevOps相关)
│   ├── core-devops-model
│   ├── core-devops-provider
│   ├── core-devops-service
│   ├── core-devops-web-admin
│   ├── core-devops-web-api
│   ├── pom.xml
│   └── readme.md
│   
├── core-framework (SoloAdmin Framework 核心代码)
│   ├── core-framework-model
│   ├── core-framework-provider
│   ├── core-framework-service
│   ├── core-framework-web
│   ├── pom.xml
│   └── readme.md
│   
├── core-web (SoloAdmin Web Controller 相关代码)
│   ├── pom.xml
│   ├── readme.md
│   ├── src
│   
├── module-cms ( CMS 模块示例)
│   ├── module-cms-commons
│   ├── module-cms-model
│   ├── module-cms-provider
│   ├── module-cms-service
│   ├── module-cms-web
│   └── pom.xml
│   
├── starter-cms (CMS 启动模块)
│   ├── soloadmin.bat
│   ├── soloadmin.sh
│   ├── package.xml
│   ├── pom.xml
│   ├── src
│   
├── starter-tomcat  (Tomcat War 包的打包示例)
│   ├── pom.xml
│   ├── src
│

编译 SoloAdmin

编译 SoloAdmin 的主要目的,是为了把 Framework 模块的资源文件,包括 html、js 等全部复制打包到"自己" 的模块里来,我们假设 module-cms 是自己的模块,那么打包的目的就是为了在 starter-cms 里生成可以执行的程序。

我们需要在 SoloAdmin 的根目录执行如下的 Maven 命令进行编译:

mvn clean package

命令执行的过程中,Maven 可能需要去下载相关依赖的 jar 包,命令执行完毕后,会在 starter-cmstarget 目录下生成 starter-cms-1.0.0.zip 文件,复制该文件到任何地方解压缩,通过其内置的 soloadmin.sh 脚本,执行 ./soloadmin.sh start 即可启动项目。

运行 SoloAdmin

编译完成 SoloAdmin 后,我们以下的 Java 类,然后执行其 main() 方法即可。

starter-cms/src/main/cn.soloadmin.cms.admin.CmsStarter

控制台输入如下内容,我们通过浏览器访问 http://0.0.0.0:8003 既可以显示系统登录信息,账号密码admin/123456。(注意:Windows 系统可能需要访问 http://127.0.0.1:8003 )

创建自己的业务模块

core-codegen 模块下,创建自己的代码生成器,代码生成器带有可以执行的 main() 方法

例如:CMS 代码生成器的 代码如下:

public class CMSModuleGenerator {

    private static String dbUrl = "jdbc:mysql://127.0.0.1:3306/soloadmin_db?useUnicode=true&useSSL=false&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useInformationSchema=true&remarks=true";
    private static String dbUser = "root";
    private static String dbPassword = "123456";


    private static String moduleName = "cms";
    private static String dbTables = "cms_article,cms_article_category,cms_article_comment";
    private static String modelPackage = "cn.soloadmin.module.cms.model";
    private static String servicePackage = "cn.soloadmin.module.cms.service";

    private static String[] removedTableNamePrefixes = new String[]{"cms"};

    public static void main(String[] args) {
        ModuleGenerator moduleGenerator = new ModuleGenerator(moduleName, dbUrl, dbUser, dbPassword, dbTables, modelPackage, servicePackage, removedTableNamePrefixes);
        moduleGenerator.setGenUI(true).gen();
    }
}

其他 Module 需要复制一份这个代码,然后修改掉 表明、包名、模块名称即可。

定义后台菜单组

我们通过 CmsModuleCodeGenerator 只是生成了 Model/Service/Provider 的代码,并不会生成 Controller 和 html,以及后台菜单,因此,我们需要来定义一个菜单组,我们登录的时候,才能看到 CMS 模块的菜单,其他模块通用需要定义一个模块自己的菜单组。

如果定义后台菜单呢?代码如下:

public class CmsMenus implements MenuBuilder {

    public static final String ARTICLES = "articles";
    public static final String ARTICLE_CATEGORY = "article-category";


    static List<MenuBean> cmsMenus = new ArrayList<>();

    static {
        cmsMenus.add(new MenuBean(ARTICLES, "文章管理", "fa-cart-plus", MenuTypes.MODULE, 11));
        cmsMenus.add(new MenuBean(ARTICLE_CATEGORY, "文章分类", "fa-crown", MenuTypes.MODULE, 22));
    }


    @Override
    public List<MenuBean> buildMenus() {
        return cmsMenus;
    }

}
  • 1、编写一个类,实现 MenuBuilder 接口
  • 2、重写 buildMenus 方法,并返回一个 List<MenuBean>

需要注意的是,如果 MenuBean 有配置了 pid 属性,那说明其是一个 “菜单”,如果没有 pid,说明其实一个 “菜单组”。

编写 Controller 代码,并生成菜单

Controller 代码如下

@RequestMapping("/cms/article")
public class ArticleController extends BaseAdminController {

    private CmsArticleService articleService;

    @MenuDef(text = "文章列表", pid = CmsMenus.ARTICLES, sortNo = 1)
    public void list(){
        render("");
    }

}
  • 1)通过 @RequestMapping("/cms/article") 来配置 Controller 的映射路径
  • 2)通过 @MenuDef(text = "文章列表", pid = CmsMenus.ARTICLES, sortNo = 1) 来定义菜单名称,及其归属在哪个 “菜单组” 下。

完成 Controller 代码后,我们需要进入后台,并点击 “开发管理” > “菜单构建” 就可以显示出我们在 ArticleController.list() 里定义的菜单了。

Copyright © SoloAdmin 2020-2021 all right reserved,powered by Gitbook文件修订时间: 2021-06-11 17:13:40

results matching ""

    No results matching ""