Java开发框架演变过程

JavaWeb开发简史

Java框架创始人

image

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(可选)

架构演变过程

image

image

image

理解架构的核心要素

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

Java学习过程

  • Java概念
    理解JDK、JRE、类、接口、继承、多态

  • Java基础
    学会数据类型、集合、修饰符、类的定义、方法的定义、接口、注解、枚举;IO、多线程等内容先不管。

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

  • 编写接口
    分别写出GET、POST、PUT、DELETE请求方式的接口

  • 应用概念
    理解接口的调用分层以及原因;理解MODEL、DTO、VO概念

  • MySQL概念
    理解什么叫表,主键和外键的作用,剩下的以后再说

  • MySQL基础
    学会如何建表、修改字段、增删改查数据即可,剩下的以后再说

  • MyBatis Plus
    直接上手Plus,学会如何操作数据库

  • 继续编写接口
    学会写出一套完整的增删查改接口

  • 封装
    学会如何做统一响应对象即可,剩下的以后再说

  • 日志
    理解日志的作用,并学会如何使用logback

  • 开发一个项目
    独自一人从头写到尾,只做接口和理解即可

  • 部署
    理解jar并学会如何在后台启动jar

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

Java技术大全

全栈开发技术分类

image

开源流行数据库

image

后端Java代码目录示例

image

前端VUE代码目录示例

image

编程语言的优缺点对比

image

posted @ 2022-05-10 17:25  zhαojh  阅读(828)  评论(1编辑  收藏  举报