Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

hankaibo/amy-java

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 提供的免费授权。

Packages

No packages published

Contributors 2

Languages

AltStyle によって変換されたページ (->オリジナル) /