分享好友 最新动态首页 最新动态分类 切换频道
2024年最新SpringBoot前后端分离后台管理系统分析,真香(1),网易有道java面试题
2024-12-27 04:20

更多笔记分享

2024年最新SpringBoot前后端分离后台管理系统分析,真香(1),网易有道java面试题

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

这个项目中就大量使用了 AOP 思想。简单举两个例子吧

日志记录

====

利用 AOP 方式记录日志,只需要在 controller 的方法上使用 @Log(“”) 注解,就可以将用户操作记录到数据库,源码可查看 eladmin-logging这个 Module。。

@Log(“新增用户”)

@PostMapping(value = “/users”)

public ResponseEntity create(@Validated @RequestBody User resources){

checkLevel(resources);

return new ResponseEntity(userService.create(resources),HttpStatus.CREATED);

}

Redis 限流

========

利用 AOP 方式对接口进行限流,只需要在 controller 的方法上使用@Limit(“”) 注解即可,源码可查看 eladmin-common这个 Module。

@AnonymousGetMapping

@ApiOperation(“测试”)

@Limit(key = “test”, period = 60, count = 10, name = “testLimit”, prefix = “limit”)

public int test() {

return ATOMIC_INTEGER.incrementAndGet();

}

基于 RBAC 的权限模块设计

===============

系统权限控制采用 RBAC 基于角色的权限访问控制(Role-Based Access Control 思想一种最常见的权限管理思想,在一些对于全权限控制要求比较严格的系统会使用到)。

什么是 RBAC 呢

简单地说:一个用户可以拥有若干角色,每一个角色有可以被分配若干权限这样,就构造成“用户-角色-权限” 的授权模型。在这种模型中,用户与角色、角色与权限之间构成了多对多的关系,如下图

RBAC

在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。

本系统的权限设计相关的表如下(一共 5 张表,2 张用户建立表之间的联系

通过这个权限模型,我们可以创建不同的角色并为不同的角色分配不同的权限范围(菜单)。

自定义权限验证方式

=========

Spring Security 提供了Spring EL表达式,允许我们在定义接口的方法上面添加注解来实现权限控制。比如下面的接口表示用户拥有 admin、menu:edit 权限中的任意一个就能能访问update接口。

但是,由于每个接口都需要给超级管理员放行,所以单纯使用这种注解的方式每次都需要重复的添加 admin 权限、

因此我们可以加入自定义权限验证方式,在验证的时候默认给拥有 admin 权限的用户放行。

源码

// eladmin-common -> me.zhengjie.config.ElPermissionConfig

@Service(value = “el”)

public class ElPermissionConfig {

public Boolean check(String …permissions){

// 获取当前用户的所有权限

List elPermissions = SecurityUtils.getCurrentUser().getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toList());

// 判断当前用户的所有权限是否包含接口上定义的权限

return elPermissions.contains(“admin”) || Arrays.stream(permissions).anyMatch(elPermissions::contains);

}

}

使用方式

@ApiOperation(“查询任务执行日志”)

@GetMapping(value = “/logs”)

@PreAuthorize(“@el.check(‘timing:list’)”)

public ResponseEntity queryJobLog(JobQueryCriteria criteria, Pageable pageable){

return new ResponseEntity<>(quartzJobService.queryAllLog(criteria,pageable), HttpStatus.OK);

}

对应的数据库内容如下

审计功能

====

在这个项目中,继承了 BaseEntity 的类会自动写入创建时间、修改时间、创建人、更新人这些数据。

简单介绍一下上面涉及到的一些注解

  1. @CreationTimestamp : 创建对象的时候自动生成时间戳。

  2. @UpdateTimestamp:创建对象的时候自动生成时间戳。

  3. @CreatedBy :表示该字段为创建人,在这个实体被 insert 的时候会设置值@LastModifiedBy同理。

最后

我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。

还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

转存中…(img-jnA6ngvl-1715225557837)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

最新文章
快三大小
快三大小裏對彩票結果趨勢有準確的了解,具有強大的功能和豐富的玩法,超級體驗買彩票生活真是不錯,可以查詢聯賽信息,隨時隨地在線分析,感興趣的朋友們不妨試試吧!1、可以輕松自由的在平台上下注,注冊發送紅包,還有很多意想不到的功
百年牛栏山50度500毫升(6)
牛栏山经销商手机号码固定电话联系人QQ经销商地址龙威酒行134****90090373****5103高总河南新乡 中博食府183****7187183****7187李双陡沟街道中博凤华岳府5-2101福建酒一杯烟酒茶批发商行137****5565137****5565张总南屿镇酒一杯吉喆名烟
美股二十大半导体公司中国大陆营收占比最低13.4%,高通最高67.1%;高端产品仍被进口垄断,国内半导体测试探针产业加速突围
1.高端产品仍被进口垄断,国内半导体测试探针产业加速突围2.东南大学举行芯朋创新基金捐赠签约仪式,芯朋微董事长张立新获至善教育贡献奖3.【芯观点】功率半导体超级周期“下半场”到来,本土企业面临考验4.Yole:目前有超过50家中国大陆半
阿里云盘资源搜索的网址
为啥阿里云盘,还不就是因为百度网盘。。。 懂得都懂 下边是几个阿里云盘资源搜索的地址: 小纸条:https://u.gitcafe.net/ 优聚搜:https://v3.ujuso.com/ 找资源:https://zhaoziyuan.me/ 奈斯搜索:
沈阳惠天热电股份有限公司 第十届董事会2024年第七次临时会议决议公告
登录新浪财经APP 搜索【信披】查看更多考评等级  证券代码:000692          证券简称:     公告编号:2024-69  沈阳惠天热电股份有限公司  第十届董事会2024年第七次临时会议决议公告  本公司及董事会全体成员保
掌握SEO精髓,五大步骤助你从入门到精通
学习SEO五大步骤详解,包括了解基础概念、选定目标关键词、优化网站结构和内容、建立外部链接以及持续监控和分析。从入门到精通,掌握这些步骤,提升网站在搜索引擎中的排名。随着互联网的快速发展,搜索引擎优化(SEO)已经成为企业提升网
百度手机端排名优化怎么做如何做好SEO百度手机端网站布局
想知道网站优化如何能提高百度首页排名吗?想知道关键词排名怎样才能快速准确的优化到首页吗?接下来我就和大家共同探讨一下这个问题,以下是我个人的拙见,仅供各位参考,希望对各位在网站优化及关键词优化时,有所帮助,如有不对,烦请指
手机怎么和平板同步
随着科技的发展,智能手机和平板电脑已成为我们日常生活中不可或缺的工具。为了提升用户体验,实现手机与平板之间的数据同步变得尤为重要。以下是几种实现手机与平板同步的方法,帮助您在不同设备间无缝切换。**1. 使用云服务**云服务是实
淘宝数据有哪些要素?作者:小果 时间:2024-12-20 阅读:250
淘宝店铺的运营涉及到了众多层面的数据,这些数据可以大致分为以下几大类别:1. 流量追踪数据:此类数据涵盖了店铺的浏览量、访客数量、转化率等关键指标。通过这些数据,我们可以更精准地分析店铺的流量来源、流量质量以及潜在的优化方向
《孙氏宗谱_共二十八卷_江苏孙氏》民国三年(1914)_二十四.pdf
江苏[孙姓] 孙氏宗谱二十八卷 — 民国三年(1914)_二十四.pdf
相关文章
推荐文章
发表评论
0评