ELADMIN (opens new window) 一个基于 Spring Boot 2.1.0 、 Spring Boot Jpa、 JWT、Spring Security、Redis、Vue、Element-UI 的前后端分离后台管理系统。

Spring Boot

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的**快速应用开发领域(rapid application development)**成为领导者。

从最根本上来讲,Spring Boot就是一些库的集合,它能够被任意项目的构建系统所使用。

Spring框架

Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。 尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。

  1. Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。
  2. Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。
  3. Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。
  4. Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。

java反射机制

参考:http://www.ujiuye.com/wenda/2021/69019.html
Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。 这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射被视为动态语言的关键。

反射技术大量用于Java设计模式和框架技术,最常见的设计模式就是工厂模式和单例模式。

  1. 单例模式(Singleton):这个模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作。这样做就是为了节省内存空间,保证我们所访问到的都是同一个对象。

  2. 工厂模式(Factory):工厂模式利用Java反射机制和Java多态的特性可以让我们的程序更加具有灵活性。用工厂模式进行大型项目的开发,可以很好的进行项目并行开发。

特点

(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
(2)内嵌Tomcat或Jetty等Servlet容器;
(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
(4)尽可能自动配置Spring容器;
(5)提供准备好的特性,如指标、健康检查和外部化配置;
(6)绝对没有代码生成,不需要XML配置。

JPA

JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中
Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。、

API(应用程序界面)

API(Application Program Interface)被定义为应用程序可用以与计算机操作系统交换信息和命令的标准集。一个标准的应用程序界面为用户或软件开发商提供一个通用编程环境,以编写可交互运行于不同厂商计算机的应用程序。
API不是产品,而是战略,所有操作系统与网络操作系统都有API。在网络环境中不同机器的API兼容是必要的,否则程序对其所驻留的机器将是不兼容的。

ORM框架

ORM(Object Relational Mapping)框架采用元数据来描述对象与关系映射的细节,元数据一般采用XML格式,并且存放在专门的对象一映射文件中。简单理解为一种框架的格式

JWT

参考:https://www.jianshu.com/p/28c74dc48637

JSON Web Token (JWT)是一个开放标准(RFC 7519)协议,它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。 JWT 可以使用密钥(使用 HMAC 算法)或使用 RSA或ECDSA的公钥/私钥对 进行签名。

参考:https://blog.csdn.net/weixin_45070175/article/details/118559272(这一篇文章很详细)

JWT的本质就是一个字符串,它是将用户信息保存到一个Json字符串中,然后进行编码后得到一个JWT token,并且这个JWT token带有签名信息,接收后可以校验是否被篡改,所以可以用于在各方之间安全地将信息作为Json对象传输。

使用场景

授权:这是使用 JWT 最常见的场景。用户登录后,每个后续请求都将包含 JWT,从而允许用户访问该令牌允许的路由、服务和资源。单点登录是当今广泛使用 JWT 的一项功能,因为它的开销很小并且能够在不同的域中轻松使用。

信息交换:JSON Web Token 是在各方之间安全传输信息的好方法。因为可以对 JWT 进行签名(例如,使用公钥/私钥对),所以您可以确定发件人就是他们所说的那个人。此外,由于使用标头和有效负载计算签名,还可以验证内容没有被篡改。

spring security

Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作

Redis

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis 支持各种不同方式的排序 。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是 redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C++,C#,PHP,JavaScript,Perl,Object-C,Python,Ruby,Erlang等客户端,使用很方便。

Vue

参考:https://blog.csdn.net/weixin_48841931/article/details/126219434

  1. VUE是一套前端框架,免除了原生JavaScript中的DOM操作,简化书写
  2. VUE基于MVVM(Model-View_ViewModel)思想,实现数据双向绑定

Element-UI

element 是基于 vue 实现的一套不依赖业务的 UI 组件库,提供了丰富的PC端组件,减少用户对常用组件的封装,降低了开发的难易程度。

总结

到这里对ELADMIN有一个基本的了解,是一个基于一些框架,借用一些库,调用JWT传输,以及采用一些组件去完成。

ELADMIN学习第一次相关推荐

  1. 深度学习第一次课-数学

    说明:本文是七月算法5月深度学习班第一次课听课笔记.只记录关键知识点,有些没具体展开.帮助复习用.文中使用了老师课件中的公式. 微积分 导数 定义 常用函数导数 导数法则 加法  乘法  除法  链式 ...

  2. 深度学习——第一次浪潮、寒冬及解冻

    浪起原因: 感知机的诞生 持续时间: 1943年-1969年 寒冬原因: 感知机(单个神经元)无法解决异或等线性不可分问题. 解冻: 1986年之后多层神经网络解决异或等线性不可分问题. 详情: 19 ...

  3. 动手学深度学习第一次打卡

    今年才开始接触深度学习,基本上是小白的状态,希望能利用疫情放假的这些日子好好学习一下深度学习.第一次打卡包括Task01和Task02两部分,Task01的学习任务又分为线性回归.Softmax与分类 ...

  4. 虚幻3 学习 第一次 创建方块

    今天第一次学习虚幻3引擎的使用,简单的了解了一下操作方式,体验了基本功能花刷. 默认纹理是蓝白条纹(斜眼),背景是系统的模板背景.现在有了一个简单的构思,准备在学习过程中一步一步尝试去实现以下.

  5. Data Whale第20期组队学习 Pandas学习—第一次综合练习

    Data Whale第20期组队学习 Pandas学习-Task Special & 综合练习 一.企业收入的多样性 二.组队学习信息表的变换 三.美国大选投票情况 参考文献 一.企业收入的多 ...

  6. Datewhale数据分析组队学习第一次打卡

    **复习:**这门课程得主要目的是通过真实的数据,以实战的方式了解数据分析的流程和熟悉数据分析python的基本操作.知道了课程的目的之后,我们接下来我们要正式的开始数据分析的实战教学,完成kaggl ...

  7. Python学习第一次笔记

    注释 机器不执行注释内容 注释一般用自然语言 注释写法 行注释:#开头,既可以单独成行,也可以在代码后边. 块注释:多行'''开始,'''结束 注释原则 恰当 适量 复杂算法需要 不容易看懂的代码 # ...

  8. JavaSE学习第一次笔记---Java入门知识

    目录 一.Java入门知识 1.JDK组成 2.Path环境变量 2.1在配置环境变量时注意: 2.2配置JAVA_HOME 一.Java入门知识 1.JDK组成 首先,使用通过javac开发工具对. ...

  9. Android学习|第一次创建启动Adnroid项目(包含创建虚拟手机)

    1.创建启动Android工程 选择new project一般选择空白的Empty Activity 如下界面后,项目路径避免中文路径出现,语言选择Kotlin(java的选java). 等待完成创建 ...

最新文章

  1. linux日志队列长度,Linux 消息队列长度处理
  2. 《微信企业号开发日志》之企业号接入
  3. mysql5.6.8源码安装
  4. RBSP、SODB、EBSP三者的区别和联系 SPS: sequence parameter sets
  5. c语言用菜单做计算器,小白求大神帮忙用C语言做个多功能计算器!!!!
  6. Linux内核源码分析--内核启动之(1)zImage自解压过程(Linux-3.0 ARMv7) 【转】
  7. Java-Runoob-高级教程-实例-数组:03. Java 实例 – 获取数组长度-*
  8. from Crypto.Cipher import AES报错
  9. bitnami下mysql配置-包含phpMyAdmin配置
  10. 软硬负载之间的对比及优缺点
  11. spine骨骼动画基础一文通
  12. 不改变像素尺寸怎么压缩图片
  13. Peta数据集识别性别
  14. 同事在上班期间在干私活,要不要告诉老板!
  15. 计算机软件与硬件系统基础知识,计算机软硬件系统基础知识.pdf
  16. eclipse下maven调试的技巧(Re-run Maven using the -X switch to enable full debug logging.)
  17. 使用python操作excel的xls文件和xlsx文件之间的批量导出和填充数据
  18. 【实战+源码】RGB-D移动抓取服务机器人(四)——完结篇(ROS机器人、系统设计、运动规划、目标定位)
  19. ROM、RAM和FLASH的区别是什么?SRAM、DRAM、PROM、EPROM、EEPROM
  20. 学术失信!2人被撤销硕士学位!导师均被撤销硕士研究生指导教师资格!

热门文章

  1. 关于淘宝API的详细说明(淘宝开放平台API揭秘)
  2. vc设备工程师_设备工程师考核.doc
  3. 浏览器flash过期无法使用完美解决
  4. 国际域名缩写____各个国家
  5. easyPOI和导入复杂excel的各种坑
  6. 07年网络搞笑流行语
  7. CDA数据分析师3个级别的薪资待遇|人才认证标准
  8. 【机器学习基础】EM算法详解及其收敛性证明
  9. 流程内耗的雾霾几时休?
  10. b站老是服务器中断,​B站就服务器故障致歉,服务器连接失败原因与解决方法...