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. gin+grom 求当天的数据列表 0点到24点

    框架go-admin gin+gorm mysql表 CREATE TABLE `sq_user_ticket` ( `id` bigint(20) NOT NULL AUTO_INCREMENT C ...

  2. CINN 中子图编译缓存机制

    采用 「问-答」形式记录研读 CINN 开源框架的笔记 Q:CINN中子图编译的入口是在哪里? for (const auto& node_vec : clusters) { // <- ...

  3. Swift中Tuple的比较

    Swift中Tuple的比较遵循如下规则: 1 被比较的Tuple中包含的元素个数必须一样,并且对应元素的类型也必须一样: 2 比较的结果由整个Tuple的比较结果来决定.比如,如果是相等比较,那么必 ...

  4. fastposter v2.9.1 程序员必备海报生成器

    fastposter v2.9.1 程序员必备海报生成器 fastposter海报生成器是一款快速开发海报的工具.只需上传一张背景图,在对应的位置放上组件(文字.图片.二维.头像)即可生成海报. 点击 ...

  5. css样式相关的惊艳的属性

    CSS gap 简写属性用于设置行与列之间的间隙(网格间距). 规范的早期版本将该属性命名为 grid-gap,且为了保持与旧网站的兼容性,浏览器仍然会接受 grid-gap 作为 gap 的别名. ...

  6. Springboot+Mybatis+Clickhouse+jsp 搭建单体应用项目(二)(添加日志打印和源码地址)

    一.添加yaml设置 1 logging: 2 level: 3 com.mrliu.undertow.mapper : debug 二.添加pom的Hutool工具,完善日志打印处理 1 <d ...

  7. kubernetes 之dashboard

    部署 kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recomme ...

  8. 如何模拟HTTP请求并验证功能

    要模拟HTTP请求并验证功能,你可以使用Spring Boot提供的MockMvc工具,它允许我们在没有实际启动HTTP服务器的情况下测试Spring MVC控制器.以下是一个使用MockMvc进行H ...

  9. 使用Chrome 开发者工具提取对应的字符串

    最近在查看一个API的数据,效果很好,但是里面只有一部分我想要的内容 如果是简单一点的可以直接获取 如下比如我想要提取返回的代码中关键的字符串:"video": "这里的 ...

  10. zabbix第一天 zabbix安装,添加监控项

    1. zabbix 介绍 公司规模大,服务器众多,运维人员需要用到zabbix来监控整个服务器的运行状况,避免服务器故障后运维人员无法察觉. 清华zabbix源: https://mirrors.tu ...