当前位置: 首页 > news >正文

pig 权限管理开源项目学习

pig 源码 https://github.com/pig-mesh/pig

文档在其中,前端在文档中,官方视频教学也在文档中有。

第一次搭建,建议直接去看单体视频,照着做即可。

文章目录

  • 项目结构
      • Maven 多模块项目
      • pig-boot 启动核心模块
      • pig-auth 实现认证和授权
      • pig-gateway API 网关
        • Nacos
      • pig-upms 核心业务
  • 项目交互细节
      • 验证码

项目结构

这是典型的 Spring Boot 微服务项目
在这里插入图片描述

  • auth : authentication 身份验证
  • common 公共的、通用的
  • gateway 网关
  • upms : user permission management system 用户权限管理系统
  • visual : visualization 可视化
  • pom : project object model , Maven的项目对象模型

Maven 多模块项目

聚合项目(Aggregator Project)指的是一个 父项目(Parent POM),它不包含实际代码,只是统一管理多个子模块(Submodule)

pig/pom.xml 聚合

明确聚合的子模块:

<modules>
    <module>pig-register</module>
    <module>pig-gateway</module>
    <module>pig-auth</module>
    <module>pig-upms</module>
    <module>pig-common</module>
    <module>pig-visual</module>
</modules>

<dependencyManagement> 统一管理依赖版本

pluginManagement 统一插件版本

profiles 支持不同构建环境
这里就对应 idea 右边 maven 里的 profiles

<!--  -->
 <profiles>
        <profile> <!-- 代表一个特定的构建配置集合 -->
        
            <id>cloud</id> <!-- 唯一标识符 -->
            <properties> <!-- 定义一组属性 -->
                <!-- 环境标识,需要与配置文件的名称相对应 -->             
                <profiles.active>dev</profiles.active> <!-- 当前激活的环境为 dev -->
                
				<!-- 设置 Nacos 注册中心的用户名和密码 -->
                <nacos.username>nacos</nacos.username> 
                <nacos.password>nacos</nacos.password>
            </properties>
            <activation>
                <!-- 默认环境 -->
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        
        <profile>
            <id>boot</id>
            <modules> <!-- 激活时要包含的模块 -->
                <module>pig-boot</module>
            </modules>
        </profile>

pig-boot 启动核心模块

SpringBootApplication 注解是 
@Configuration // ※ 使 spring boot 默认扫描其上级和同级的子包
@EnableAutoConfiguration
@ComponentScan 
的组合。

项目结构是一个 多模块 Maven 工程

pig/pom.xml中,已经把子模块都聚合进来了(见上文):
在这里插入图片描述

而 @ComponentScan 默认就是从 com.pig.boot 扫描其“上级和同级的子包” (这里是 com.pig4cloud.pig )

因此只要它们的包路径是 com.pig 开头,Spring Boot 默认就能扫描到!

pig-auth 实现认证和授权

使用了 Spring Security 和 OAuth2

pig-gateway API 网关

一般用的是 Spring Cloud Gateway

路由配置 resources/application.yml:

在这里插入图片描述
配置了服务器端口,而网关信息由 Nacos 读入

.yaml 文件,一种数据序列化格式
阅读提示:
下面的 server: port: 等价于 server.port

server:
  port: 9999  # 服务器端口号

spring:
  application:
    name: @artifactId@ # 应用名称,会被替换为pig/pom.xml的同名标记
  cloud:
    nacos:
      username: @nacos.username@
      password: @nacos.password@
      discovery:
        server-addr: ${NACOS_HOST:pig-register}:${NACOS_PORT:8848} # 配置 Nacos 服务发现的服务器地址
        watch:
          enabled: true # 启用服务发现的监听
        watch-delay: 1000 # 监听的延迟时间ms
      config: # 配置 Nacos 作为配置中心的服务器地址
        server-addr: ${spring.cloud.nacos.discovery.server-addr} # . 即 :
  config:
    import: ## Spring 应用从 Nacos 配置中心导入配置文件 ##
      - optional:nacos:application-@profiles.active@.yml
      - optional:nacos:${spring.application.name}-@profiles.active@.yml

Nacos

Naming and Configuration Service

一个服务发现和配置管理的平台

  • 集中管理微服务的配置信息,无需重启应用即可使配置生效
  • 允许微服务在 Nacos 中进行注册,其他服务可以通过 Nacos 发现并获取到这些已注册服务的实例信息,从而实现服务间的调用

pig-upms 核心业务

  • Controller :对外提供接口
  • Service :封装具体业务逻辑
  • Mapper :与数据库交互

项目交互细节

在这里插入图片描述

验证码

在这里插入图片描述

Request URL:
http://localhost:8888/api/admin/code/image?randomStr=477ba151-80ab-43cf-b70b-a5077dd4f919
Request Method:
GET
Status Code:
200 OK

通过路径找到对应代码:

在这里插入图片描述

相关文章:

  • 第 28 场 蓝桥入门赛 JAVA 完整题解
  • 训练数据清洗(文本/音频/视频)
  • 大数据 CDH 排除故障的步骤与技巧
  • AAAI 2025新研究!大语言模型+MARL=论文新思路?
  • CausalML 基于机器学习算法的因果推理方法
  • 基于Qt的串口通信工具
  • 【Pandas】pandas DataFrame copy
  • BLE 状态机设计思路
  • 清晰易懂的 Apollo 配置中心安装与使用教程
  • 巴特沃斯滤波器
  • 国内下载不了镜像,可以用国外机器下载完成,打成tar文件,在国内机器上重新加载
  • 操作数组的工具类
  • spring mvc 中 RestTemplate 全面详解及示例
  • 蓝桥杯真题——接龙序列
  • 利用python从零实现Byte Pair Encoding(BPE):NLP 中的“变形金刚”
  • Centos7下安装hive详细步骤
  • ffmpeg播放音视频流程
  • springboot工程配置Mybatis与简单使用
  • 大数据学习(105)-大数据组件分析
  • 手撕unique_ptr 和 shareed_ptr
  • 淘宝联盟链接的网站怎么做的/河北网络科技有限公司
  • wordpress登陆界面打开慢/seo 重庆
  • 上海著名网站设计公司/b2b采购平台
  • 盘龙网站建设/网站营销推广
  • 开源微信小程序商城/泰安网站seo
  • 网站建设宗旨/软文推广有哪些平台