JavaWeb开发简史

Java框架创始人

Java框架说明

  • Spring: 把应用程序中的bean统一交给Spring进行管理控制,简化了我们的代码操作,和降低了代码的耦合度,Spring框架基本上是所有公司都用的一门技术,因为它能很轻松的渗透控制层,持久层和业务层,由于使用频率太高了,以至于现在外面很多控制层的框架或者持久层的框架基本上都能和Spring进行无缝集成

  • SpringMVC:SpringMVC是Spring的一个子项目,它主要是控制层的架构,它对于接收参数还有跳转页面都进行了较大的简化,让程序员更好的入门和操作更加简单,如果你是老程序员用过struts或者struts2基本上就在厕所哭,太难入手了,而且用起来也是很复杂的一件事情

  • SpringBoot:它的作用就是快速搭建企业级的架构和简化程序员很多繁琐复杂的步骤,比如jar包导入的简化和编程式代码的简化

  • SpringCloud:如果遇到上亿级别的项目,我们如果只有单体项目是不行的,因为单体项目存在很多劣势(单点故障,不能处理高并发量...这些都是它的劣势),所以我们就得创建多个服务来运行微小项目,所有的微小项目组合在一起就是一个大项目,那多个项目之间是需要管理控制的,所以我们可以使用SpringCloud来进行管理和创建。

  • Mybatis:它是一个orm框架,它要比jdbc好用太多了,因为它可以吧结果集自动映射对应的实体类,由于是自己手动编写sql语句,所以性能方面是能得到一定的保证,向jpa虽然要比mybatis操作更加简单,但是sql语句一般都是自动生成,所以性能方面我们也是不好控制,所以外面公司基本上还是喜欢使用mybatis

  • Redis:由于现在互联网的项目是越来越多,很多时候为了简化数据库的压力,让用户查询性能更高,我们会采用redis来做缓存

  • Maven:现在单体项目是越来越少了,基本上都是按照功能或者模块划分项目,那多个项目之间是需要进行关联和管理的,所以我们可以采用maven进行对应的管理

  • Elasticsearch :如果我们做电商网站,或者互联网的项目,就会涉及到一个高级查询,由于sql语句的模糊查询性能低下,所以我们可以使用es对数据进行分词,创建索引,让查询性能更高,匹配度也是更好

Java框架演进

Servlet技术只是一些底层的技术。实际开发之中是不会用到的!

现在目前实际用到的Java开发技术:

早在15年左右的时候流行:SSH(Spring+Struts+Hibernate);现在基本已经离开市场。

SpringData JPA前身就是Hibernate!

第一种:SpringMVC(快淘汰了)

  • 前端:Jsp(或Html)
  • 后端:SSM(Spring + SpringMVC + Mybatis)

第二种:单体应用SpringBoot(主流)

  • 前端:LayUI + Thymeleaf
  • 后端:SpringBoot + Mybatis(或者JPA) + Redis(可选)

第三种:前后端分离SpringBoot(主流)

  • 前端:Vue + ElementUI + Axios
  • 后端:SpringBoot + Mybatis(或者JPA) + Redis(可选)

第四种:前后端分离SpringCloud(微服务)(主流)

  • 前端:Vue + ElementUI + Axios
  • 后端:SpringBoot + SpringCloud + Mybatis(或者JPA) + Redis(可选) + Elasticsearch(可选) + MQ(可选)

架构演变过程

理解架构的核心要素

一般来说软件架构需要关注性能、可用性、伸缩性、扩展性和安全性这5个架构要素。

一个常规应用需要用到的技术

在编写一个基于Spring Boot的常规应用时,需要使用到以下技术:

  • Spring Boot:作为项目的核心框架,提供自动配置、内嵌服务器等功能,简化开发过程。

  • Spring Security:用于提供安全性功能,如用户认证和授权,保护系统的敏感数据和操作。

  • JPA/MyBatis:作为数据访问对象(DAO)层的技术,用于与数据库交互,实现数据的增删改查操作。

  • H2/MySQL/Redis/其他数据库:作为存储应用信息的数据库。

  • API文档工具:如Swagger或SpringFox,用于自动生成和展示REST API文档,方便前后端开发人员协作。

  • Thymeleaf/JSP/其他前端框架:用于构建Web页面的视图层,实现前后端数据的展示和交互。

扩展:

拦截器,过滤器,跨域配置,权限控制,多数据源,自定义注解,防止XSS攻击,全局异常处理,防止重复提交,请求限流,文件读写,实时通讯,多线程,任务调度,分库分表,分布式锁,自动化部署。。。

全栈开发技术分类

开源流行数据库

后端Java代码目录示例

前端VUE代码目录示例

Java开发框架演变过程的更多相关文章

  1. BuguMongo是一个MongoDB Java开发框架,集成了DAO、Query、Lucene、GridFS等功能

    http://code.google.com/p/bugumongo/ 简介 BuguMongo是一个MongoDB Java开发框架,它的主要功能包括: 基于注解的对象-文档映射(Object-Do ...

  2. 轻量级的Java 开发框架 Spring

    Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development a ...

  3. 又一个小而美的Java 开发框架: Solon 1.2 新篇

    Solon 1.2 发布后,取消了X类名前缀.故对此文做些调整. Solon 是Java世界里一个新的极易上手的Java开发框架.参考过 Javalin . Spring boot 等很多现有框架的设 ...

  4. JAVA开发框架

    1.Bootstrap     Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML.CSS.JavaScript 开发的简洁.直观.强悍 ...

  5. 不妨试试更快更小更灵活Java开发框架Solon

    @ 目录 概述 定义 性能 架构 实战 Solon Web示例 Solon Mybatis-Plus示例 Solon WebSocket示例 Solon Remoting RPC示例 Solon Cl ...

  6. Java的演变过程

    1. 1996.01.23 JDK1.0 代号Oak:212个类.8个包: 2. 1997.02.19 JDK1.1 504个类.23个包: Java Bean.远程方法调用(RMI).JAR文件格式 ...

  7. 《如莲春天》Java开发框架

    关于 如莲者,净洁如莲之意,希望打造一个简洁的系统框架.系统主要采用Spring相关技术,故取名:如莲春天.    如莲春天,包括一套系统界面.一个权限管理系统.一个CURD代码生成模块.一些基础模块 ...

  8. 各JAVA开发框架版本及对应信息

    日期:2017.05.22 当前最新 release 版本情况: 框架 最新GA(General Availability)版本 spring 4.3.8 spring boot 1.5.3 myba ...

  9. 阿里巴巴十年Java架构师分享,会了这个知识点的人都去BAT了

    1.源码分析专题 详细介绍源码中所用到的经典设计思想,看看大牛是如何写代码的,提升技术审美.提高核心竞争力. 帮助大家寻找分析源码的切入点,在思想上来一次巨大的升华.知其然,并知其所以然.把知识变成自 ...

  10. [转]阿里巴巴十年Java架构师分享,会了这个知识点的人都去BAT了

    1.源码分析专题 详细介绍源码中所用到的经典设计思想,看看大牛是如何写代码的,提升技术审美.提高核心竞争力. 帮助大家寻找分析源码的切入点,在思想上来一次巨大的升华.知其然,并知其所以然.把知识变成自 ...

随机推荐

  1. Premiere cc 2019之声音处理

    目录 deepin录视频 调整声道 查看声音轨道 转化格式 提取二声道的台词音,或者背景音 降噪 1.无需AU!PR自带音频模块完美实现降噪.增强人声.模拟环境 2.Adobe audition中降噪 ...

  2. Maven - cmd命令行窗口创建maven项目

    一.构建命令 mvn archetype:generate 当出现以上的命令提示,直接回车下一步即可: 二.输入maven项目的groupId.artifactId.version 三.maven项目 ...

  3. google账户配置foxmail和使用foxmail

    最近想把邮件分门别类,创建一些个人文件夹,更好的筛选邮件,可以尝试使用foxmail 1. 如果你有google账户,在配置foxmail之前需打开google账户的安全设置 https://myac ...

  4. postgresql建表空间、建库、建模式、建用户的规范

    一.官方概念说明 1.表空间(表空间位置不应该位于数据目录内) 性能优化:您可以将高I/O的表和索引放在高速磁盘上,而将不经常访问的表放在普通的磁盘上. 管理磁盘空间:当数据库存储空间不足时,可以通过 ...

  5. 4G EPS 的网络协议栈

    目录 文章目录 目录 前文列表 LTE/EPC 协议栈 E-UTRAN 空中接口协议栈 用户平面协议 PHY 层 MAC 层 RLC 层 PDCP 层 控制平面协议 RRC 层 NAS 层 EPC 核 ...

  6. vue-router单页面应用的多标签页使用问题

    正常的思维 做多vue页面应用,我们的第一反应是配置多个入口点,多个vue应用,编译成多个HTML文件,由服务器来决定路由.这是正常的思维. 但谁知道单页面应用也能做到类似的效果呢.单页面不过是服务器 ...

  7. QGIS开发笔记(二):Windows安装版二次开发环境搭建(上):安装OSGeo4W运行依赖其Qt的基础环境Demo

    前言   使用QGis的目的是进行二次开发,或者说是融入我们的应用(无人车.无人船.无人机),本片描述搭建QGis二次基础开发环境,由于实在是太长了,进行了分篇: 上半部分:主要是安装好后,使用QtC ...

  8. 将外部jar打入本地maven仓库

    1.将jar包放入某不含中文的路径下 ,例如:E:\file\zip4j-1.3.2.jar 2.在命令行输入操作命令 mvn install:install-file -DgroupId=zip4j ...

  9. Vue cli之使用Vue-CLI初始化创建前端项目

    1.生成项目目录 使用vue自动化工具可以快速搭建单页应用项目目录. 该工具为现代化的前端开发工作流提供了开箱即用的构建配置.只需几分钟即可创建并启动一个带热重载.保存时静态检查以及可用于生产环境的构 ...

  10. 原生Django出现同源策略跨域的解决方式

    解决方式: 在返回数据的时候,添加响应头信息: 例如: