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. 37张图详解MAC地址、以太网、二层转发、VLAN
  2. laravel的redis配置,一直报错Class 'Predis\Client' not found
  3. Python mysql 索引原理与慢查询优化
  4. 实验2(第二章课后习题)
  5. dubbo web工程示例_带有Dubbo的Spring Cloud Alibaba
  6. linux 安装windows字库,Linux安装windows字体
  7. html霓虹灯效果图,HTML5 SVG+CSS3霓虹灯文字边框动画特效
  8. Objects.equals(a, b)
  9. 一张图搞懂 Redis 缓存雪崩、缓存穿透、缓存击穿
  10. C++ 关于 main 函数的几点说明
  11. 大一软件工程C语言推荐书籍,大一软件工程学生,看完了谭浩强的书,越看越迷茫,感觉并没什么用,什么大程序都不会编,求指点?...
  12. 射线 ray linerender spotlight
  13. java:数据结构面试题
  14. php mpm_winnt,Windows下Apache模块配置 mpm_winnt_module
  15. 超详细TMS-EEG数据处理教程(下)
  16. 一个遮罩层怎么遮罩两个图层_遮罩动画是由两个图层组成的,一个是遮罩层,一个是被遮罩层。...
  17. 固实压缩文件容易损坏_winrar应用:创建分卷固实压缩带恢复记录的压缩文件 [原创]...
  18. 【Hive】Hive 查询
  19. 【前端三分钟】锚点自动跟随滚动定位
  20. Mac zshrc文件找不到问题

热门文章

  1. STM32CubeMX学习笔记(9)——I2C接口使用(读写EEPROM AT24C02)
  2. Windows Update错误80070003解决方法
  3. R语言ggplot2可视化散点图(scatter plot)、aes函数中的fill参数为连续变量、使用scale_fill_distiller函数自定义指定连续变量的颜色填充方案
  4. AdaNet: Adaptive Structural Learning of Artificial Neural Networks
  5. 部分只能在实机运行的APP抓包思路-免root框架神器
  6. Terraform学习2
  7. 正交设计,OO与SOLID
  8. 众筹时代 - Web众筹平台
  9. 为Array对象添加一个去除重复项的方法
  10. 计算机考证模拟运算表案例解析