• 通用权限系统(三)- 通用权限系统项目搭建


    一、导入初始工程

    鉴于时间关系,我们不再手动创建工程,而是直接从资料中提供的初始工程pinda-authority导入即可。

    导入步骤:
    1、将初始工程pinda-authority复制到任意没有中文和空格的目录下
    2、打开IDEA,选择Open,选择pinda-authority工程目录即可

    导入的项目结构如下:

    在这里插入图片描述

    二、项目模块介绍

    通用权限系统项目整体工程结构和模块功能如下:

    在这里插入图片描述

    项目服务有两个:网关服务和权限服务:

    在这里插入图片描述

    由于本系统是基于前后端分离开发方式开发,其中前端部分是由专门的前端开发人员负责,我们直接使用即可。

    三、服务注册和配置中心

    本项目使用Nacos来作为服务的注册和配置中心。Nacos是阿里巴巴开源的一款支持服务注册与发现,配置管理以及微服务管理的组件。用来取代以前常用的注册中心(zookeeper , eureka等等),以及配置中心(spring cloud config等等)。Nacos是集成了注册中心和配置中心的功能,做到了二合一。

    安装和配置过程如下:
    第一步:下载Nacos安装包,地址https://github.com/alibaba/nacos/releases/download/1.1.4/nacos-server-1.1.4.zip
    第二步:将下载的zip压缩文件解压
    第三步:修改配置文件:NACOS_HOME/conf/application.properties

    spring.datasource.platform=mysql
    db.num=1
    db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=root
    db.password=root
    
    • 1
    • 2
    • 3
    • 4
    • 5

    注意:Nacos在存储数据时既可以使用内置数据库存储,也可以通过第三方指定的数据库存储。我们上面指定了使用MySQL数据库来存储Nacos的相关数据,所以需要配置我们使用的MySQL数据库的数据源信息,这个可以根据自己的MySQL数据库进行相应调整,例如MySQL的地址、用户名、密码等。

    第四步:创建数据库
    CREATE DATABASE nacos CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

    第五步:执行NACOS_HOME/conf/nacos-mysql.sql数据库脚本文件,完成后可以看到创建了如下表:

    在这里插入图片描述

    第六步:启动Nacos服务,双击NACOS_HOME/bin/startup.cmd
    第七步:访问Nacos控制台,地址http://localhost:8848/nacos,默认用户名/密码:nacos/nacos
    第八步:新建命名空间pinda-dev,

    在这里插入图片描述

    创建的命名空间信息在tenant_info表
    在这里插入图片描述

    注意,命名空间的id需要替换到项目文件pd-parent/pom.xml中对应的nacos命名空间的id:

    在这里插入图片描述

    第九步:导入配置文件,选择nacos配置中心的命名空间,点击导入配置按钮,选择文件:docs/nacos/nacos_config_export_2020-03-23 17_31_42.zip。导入完成后如下:

    在这里插入图片描述

    四、开发方式介绍

    通过前面导入的初始项目可以看到,pd-tools工程中的各个子模块已经完成了开发,这些子模块属于项目的基础组件,为我们后续开发网关服务和权限服务提供支持,而且有一些子模块在其他项目中也可以复用。由于这些子模块会涉及到一些新技术或者框架,所以本教程会先讲解这些新技术或者框架的使用方法,然后再带领大家通读pd-tools中的相关模块的代码实现,从而了解此模块的作用和开发过程。

    本教程会按照如下顺序介绍pd-tools中的各个模块:
    pd-tools-swagger2 # 文档组件:knife4j文档
    pd-tools-common # 基础组件:基础配置类、函数、常量、统一异常处理、undertow服务器
    pd-tools-core # 核心组件:基础实体、返回对象、上下文、异常处理、分布式锁、函数、树
    pd-tools-databases # 数据源组件:数据源配置、数据权限、查询条件等
    pd-tools-dozer # 对象转换:dozer配置、工具
    pd-tools-j2cache # 缓存组件:j2cache、redis缓存
    pd-tools-jwt # JWT组件:配置、属性、工具
    pd-tools-log # 日志组件:日志实体、事件、拦截器、工具
    pd-tools-user # 用户上下文:用户注解、模型和工具,当前登录用户信息注入模块
    pd-tools-validator # 表单验证: 后台表单规则验证
    pd-tools-xss # xss防注入组件

    学习完这些模块之后就可以开发后面的网关服务和权限服务了。

  • 相关阅读:
    一个类的加载过程实例
    微信小程序项目实例停车场车辆登记+后台
    「问题解决」java web项目打成jar包运行后工具类无法读取模板文件的解决方法
    c++设计模式
    R语言数据分组聚合实战:使用aggregate函数对mtcars数据通过两个分类变量进行数据分组聚合、并计算分组的均值、使用na.rm删除异常值
    记一次生产问题的排查,让我领略了算法的重要性
    【JavaWeb】 Mybatis-02-Mybatis的快速入门
    01序列 卡特兰数
    十年测试老鸟聊聊移动端兼容性测试
    Android—ATMS应用启动流程
  • 原文地址:https://blog.csdn.net/qq_36602071/article/details/127598853