Home

Awesome

极(Ji) - 基于Spring Boot 2 的前后端分离权限管理系统

Java CI with Maven Codacy Badge Quality Gate Status

本项目实现了一个权限管理系统的最基础部分,适合开发中小型项目,由于功能简洁,可以很容易地进行定制, 变成你自己的starter脚手架。

体验地址 http://ji-boot-demo.etcd.ltd/

用户名/密码: admin/admin

如需本地部署体验,请使用ji-boot-docker项目

注意事项:本项目使用spring-javaformat插件来统一代码风格,项目打包报错请执行mvn spring-javaformat:apply一键修复。

功能

用到的开源框架、组件

配置项

ji-boot:
  doc:
    global-security-scheme: 
      # 开启后能在swagger页面设置api-token,这样才能以用户的身份调用后端接口
      enabled: false
  # 缓存配置
  cache:
    # redisson caffeine none
    type: redisson
    caffeine:
      spec: "expireAfterWrite=24h,maximumSize=100000"
    redisson:
      ttl: 86400000
      max-idle-time: 36000
      max-size: 0
  notify:
    # 钉钉消息通知
    ding-talk:
      enabled: true
    # 公众号消息通知
    wx-mp:
      enabled: true
      app-id: ${WX_MP_APPID:wxc6222bd36479c057}
      secret: ${WX_MP_SECRET}
      # 消息订阅者
      subscribers: oiwtWuMNNa6njL3bE7_9ADOKMEWc
  # 常量字典
  dict:
    # 需要扫描项目以外的包
    scan-packages: com.power4j.ji
    # 启用内建的API接口
    enable-endpoint: true
    # 接口URL
    endpoint-base-url: /sys/immutable-dictionaries
  # 自定义验证码产生地址和消费地址
  captcha:
    code-url: '/code'
    consumer: '/login'
  security:
    # 可自定义登录、注销地址
    login-url: '/login'
    logout-url: '/logout'
    api-token:
      # 过期时间,秒
      expire-sec: 86400
      # 每个用户的并发登录控制
      max-user-token: 2
    # 自定义安全访问控制
    access:
      enabled: true
      # 静态资源,放行
      ignore:
        patterns: "/static/**,/webjars/**,/favicon.ico"
      filters:
        # 只允许特定IP访问监控端点
        - patterns: '/actuator/**'
          methods: GET,POST
          access: 'hasIpAddress("127.0.0.1")'
        # swagger 放行
        - patterns: '/swagger-ui/**,/swagger-ui.html,/swagger-resources'
          methods: GET
          access: permitAll
        # knife4j 放行  
        - patterns: '/doc.html'
          methods: GET
          access: permitAll
        # OpenAPI端点 放行    
        - patterns: '/v3/api-docs/**'
          methods: GET
          access: permitAll
        # 验证码服务放行  
        - patterns: ${ji-boot.captcha.service-url}
          methods: GET
          access: permitAll
        # druid 监控放行  
        - patterns: '/druid/**'
          methods: GET,POST
          access: permitAll

界面截图

<table> <tr> <td><img src="http://picdn.eta.pub/img/login.jpg"></td> <td><img src="http://picdn.eta.pub/img/login-scuccess.jpg"></td> </tr> </table>

ui-sys-res.png

rp-preview.png

rp-design.png

sys-org.png

knife4j.png

swagger.png

wx-err-notify.png

ding-err-notify.png

性能

目前只对认证过程做了缓存优化,因为这个地方性能瓶颈较大,优化前后差距巨大。

测试结果

Jmeter 配置

jmeter-test

1C2G 云服务器(corretto Jdk 11) -Xms256m -Xmx512m

1c2g-ar

12C16G 台式机(oracle Jdk 8) -Xms1g -Xmx1g

12c16g-ar

Special Thanks

联系方式

weichat