SpringBoot+JWT+Shiro,linux 高级编程面试题
一. 什么是架构和架构本质
在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解。 此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这个世界的基础,并用来沟通的手段,如果对架构概念理解不一样,那沟通起来自然不顺畅。
Linux 有架构,MySQL 有架构,JVM 也有架构,使用 Java 开发、MySQL 存储、跑在 Linux 上的业务系统也有架构,应该关注哪一个?想要清楚以上问题需要梳理几个有关系又相似的概念:系统与子系统、模块与组建、框架与架构
5.搭配 Shiro 注解配置权限,高度灵活,提供按钮级别的权限控制,后端接口只验证权限,不看角色。用自定义 @CurrentUser 注解获取当前登录用户,Controlle 层统一异常处理:
6.用 SpringAOP 切面编程进行声明式事务,过滤请求参数,防止 XSS 攻击。
7.使用 POST 请求登录返回 token 和权限信息,保证请求无状态,返回实体如果属性为空不显示。
三、程序逻辑
1.填写用户名密码用 POST 请求访问/login 接口,返回 token 令牌等信息,失败则直接跳转 401 错误页面。
2.在之后需要验证身份的请求的 Headers 中添加 Authorization 和登录时返回的 token 令牌。
3.服务端进行 token 认证,失败跳转 401 页面。
4.用 jwt 做认证(登录),Shiro 做授权。
四、运行项目
项目结构:
通过 git 下载源码,本项目基于 JDK1.8
采用 Maven 项目管理,模块化,导入 IDE 时直接选定 liugh-parent 的 pom 导入
创建数据库 liugh,数据库编码为 UTF-8,执行 liugh.sql 文件,初始化数据
修改 application-dev.properties,更新 MySQL 账号和密码
Eclipse、IDEA 运行 SpringbootApplication.java,则可启动项目
《一线大厂 Java 面试真题解析+Java 核心总结学习笔记+最新全套讲解视频+实战项目源码》开源
Java 优秀开源项目:
ali1024.coding.net/public/P7/Java/git
最后
这份文档从构建一个键值数据库的关键架构入手,不仅带你建立起全局观,还帮你迅速抓住核心主线。除此之外,还会具体讲解数据结构、线程模型、网络框架、持久化、主从同步和切片集群等,帮你搞懂底层原理。相信这对于所有层次的 Redis 使用者都是一份非常完美的教程了。
整理不易,觉得有帮助的朋友可以帮忙点赞分享支持一下小编~
你的支持,我的动力;祝各位前程似锦,offer 不断!!!
评论