Skip to content

hankaibo/amy-java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

后端脚手架

项目特性

  • 💎 优雅美观:基于 Spring Boot 体系精心设计
  • 🚀 最新技术栈:使用 Spring Boot,Shiro,MyBatis 等前沿和成熟的技术开发
  • 🔐 安全认证:基于 token 认证,实现按钮级别的权限认证
  • ⚙️ 最佳实践:良好的工程实践助您持续产出高质量代码
  • ✌️ 快速高效:前后端分离,专注后端,快速实现 restful 接口定义

项目目录

amy  
├── logs -- 日志目录 
├── src/main/java/cn.mypandora.springboot 
|   ├── config                  -- 通用配置  
|   |    ├── exception              -- restful 接口异常信息配置目录 
|   |    ├── filter                 -- filter配置目录
|   |    ├── redis                  -- redis配置目录
|   |    ├── shiro                  -- shiro配置目录 
|   |    ├── swagger                -- swagger配置目录 
|   |    ├── validate               -- validate配置目录 
|   |    ├── webmvc                 -- mvc配置目录 
|   |    └── websocket              -- websocket配置目录   
|   ├── core                    -- 通用核心代码  
|   |    ├── base                   -- 通用Mapper和分页类 
|   |    ├── converter              -- 格式转换器 
|   |    ├── enums                  -- 自定义枚举类 
|   |    ├── exception              -- 异常信息封装类 
|   |    ├── listener               -- websocket监听类 
|   |    ├── shiro                  -- shiro扩展配置 
|   |    ├── support                -- XSS 过滤 
|   |    └── utils                  -- 工具类  
|   |    └── validate               -- 自定义校验组  
|   ├── modular                 -- 业务模块  
|   |    ├── system                 -- 通用后台管理代码目录 
|   |    └── your                   -- 放置你自己的业务代码
└── src/main/resources  
    ├── i18n                    -- 国际化目录 
    ├── mybatis                 -- Mybatis的Mapper.xml目录 
    |   ├── mapper                  -- MyBatis sql语句配置目录
    |   └── mybatis-config          -- MyBatis配置文件
    ├── sql -- sql脚本目录 
    |   └── init.sql            -- 初始化建表文件    
    ├── application.yml         -- 项目默认配置文件  
    ├── application-dev.yml     -- 开发环境配置文件  
    ├── application-docker.yml  -- docker环境配置文件  
    ├── application-prod.yml    -- 生产环境配置文件  
    ├── application-test.yml    -- 测试环境配置文件  
    └── logback-spring.xml      -- 日志配置文件  

技术选型

[x] 技术名 版本
[x] SpringBoot 2.3.9
[x] Redis(spring-boot-starter-data-redis) 2.3.9
[x] Mybatis(mybatis-spring-boot-starter) 2.1.1
[x] Mapper(mapper-spring-boot-starter) 2.1.5
[x] PageHelper(pagehelper-spring-boot-starter) 1.2.13
[x] Shiro 1.7.1
[x] jjwt 0.10.7
[x] jBCrypt 0.4.1
[x] jasypt-spring-boot-starter 3.0.3
[x] Swagger3 3.0.0

使用说明

  1. 项目使用了Lombok简化代码,请安装对应的IDE插件。

开发环境

  1. openjdk 11
  2. MariaDB 10.4.13
  3. Redis 5.0

快速开始

  1. 下载项目

    git clone https://github.com/hankaibo/amy-java.git
    
  2. 导入项目

    使用自己的 IDE 导入, Intellij IDEA 社区版本即可。

  3. 导入数据库

    安装 MySQL(MariaDB) 数据库,执行 init.sql 文件建表初始化数据;

    安装 redis。

  4. 配置数据库

    打开 application-dev.yml 修改 MySQL 和 Redis 连接信息。

  5. 启动项目

    找到 SpringbootApplication 启动类, 启动即可。

  6. 启动前端项目

    请参考前端项目amy-react配置。

逻辑

  1. POST请求【用户名/密码】到 /api/v1/login 接口进行登入,如果成功返回一个加密 token,role及resources。

    token: 之后用户访问每一个需要权限的网址请求必须在 header 中添加 Authorization 字段,例如 Authorization: Bearer token。

    role:方便前端处理的角色信息。

    resources:用户对应的所有资源数据集合,对每个人的页面进行按钮等组件的动态显示与隐藏。

  2. 登录成功之后,自动发起GET请求(携带token)到 /api/v1/users/info,获取当前登录用户的信息。

    user: 当前登录用户的个人信息。

  3. 之后单击页面相关按钮发送的请求,都会自动将 token 加入到 header 中,以保证有权限认证,可以成功请求到后台数据。

Image text

参考

本文参考了以下项目,特此感谢。

  1. https://github.com/tomsun28/bootshiro
  2. https://jinnianshilongnian.iteye.com/blog/2049092
  3. https://github.com/zhaojun1998/Shiro-Action
  4. https://github.com/Smith-Cruise/Spring-Boot-Shiro
  5. https://github.com/zzycreate/spring-boot-seed
  6. https://github.com/stylefeng/Guns

赞助商

非常感谢 Jetbrains 提供的免费授权。