肖sir__java面试__java框架
java框架
=================================
面试题:
一、常见的测试框架?
1、spring boot
2.SpringCloud
3.Spring
4、SpringMVC (Spring的一个子项目)
5.SSM(spring、spring MVC 、和mybatis框架的整合)
6.JavaWeb
7.JavaSE
8、java EE
二、框架介绍
1.SpringBoot
SpringBoot是Spring家族中一个全新框架,用来简化Spring应用程序的创建和开发过程。
特性:
一个快速开发框架,能够快速创建基于Spring的应用程序
能够直接使用java main方法启动内嵌的HTTP服务器(Tomcat,Jetty)运行Spring Boot程序,不需要部署war包文件
通过用MAVEN依赖的继承方式,帮助我们快速整合第三方常用框架
提供约定的starter Pom来简化Maven配置,让Maven配置变的更简单
完全采用注解化(使用注解方式启动SpringMVC),基本可以完全不使用XML配置文件,简化XML配置
自动化配置,根据项目的Maven依赖配置,Spring Boot自动配置Spring、SpringMVC等
四大核心`
1.自动配置
2.起步依赖,类似从单独点菜变为点套餐
3.Actuator健康检测
4.命令行界面
2.SpringCloud
是一套目前完整的微服务框架,它是是一系列框架的有序集合。它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过SpringBoot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用SpringBoot的开发风格做到一键启动和部署。
3.Spring
1、Spring 是轻量级的开源的 JavaEE 框架
2、Spring 可以解决企业应用开发的复杂性
3、Spring 有两个核心部分:IOC 和 Aop
(1)IOC:控制反转,把创建对象过程交给 Spring 进行管理
(2)Aop:面向切面,不修改源代码进行功能增强
4、Spring 特点
(1)方便解耦,简化开发
(2)Aop 编程支持
(3)方便程序测试
(4)方便和其他框架进行整合
(5)方便进行事务操作
(6)降低 API 开发难度
4.SpringMVC
SpringMVC项目架构图
1、什么是MVC
MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分
M:Model,模型层,指工程中的JavaBean,作用是处理数据
JavaBean分为两类:
一类称为实体类Bean:专门存储业务数据的,如 Student、User 等
一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。
V:View,视图层,指工程中的html或jsp等页面,作用是与用户进行交互,展示数据
C:Controller,控制层,指工程中的servlet,作用是接收请求和响应浏览器
MVC的工作流程:
用户通过视图层发送请求到服务器,在服务器中请求被Controller接收,Controller调用相应的Model层处理请求,处理完毕将结果返回到Controller,Controller再根据请求处理的结果找到相应的View视图,渲染数据后最终响应给浏览器
2、什么是SpringMVC
SpringMVC是Spring的一个后续产品,是Spring的一个子项目
SpringMVC 是 Spring 为表述层开发提供的一整套完备的解决方案。在表述层框架历经 Strust、WebWork、Strust2 等诸多产品的历代更迭之后,目前业界普遍选择了 SpringMVC 作为 Java EE 项目表述层开发的首选方案。
注:三层架构分为表述层(或表示层)、业务逻辑层、数据访问层,表述层表示前台页面和后台servlet
3、SpringMVC的特点
Spring 家族原生产品,与 IOC 容器等基础设施无缝对接
基于原生的Servlet,通过了功能强大的前端控制器DispatcherServlet,对请求和响应进行统一处理
表述层各细分领域需要解决的问题全方位覆盖,提供全面解决方案
代码清新简洁,大幅度提升开发效率
内部组件化程度高,可插拔式组件即插即用,想要什么功能配置相应组件即可
性能卓著,尤其适合现代大型、超大型互联网项目要求
5.SSM
什么是SSM框架?
SSM框架是spring、spring MVC 、和mybatis框架的整合,是标准的MVC模式。标准的SSM框架有四层,分别是dao层(mapper),service层,controller层和View层。使用spring实现业务对象管理,使用spring MVC负责请求的转发和视图管理,mybatis作为数据对象的持久化引擎。
逻辑流程
1、 用户发送请求至前端控制器DispatcherServlet。
2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4、 DispatcherServlet调用HandlerAdapter处理器适配器。
5、 HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
6、 Controller执行完成返回ModelAndView。
7、 HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet。
8、 DispatcherServlet将ModelAndView传给ViewReslover视图解析器。
9、 ViewReslover解析后返回具体View。
10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
11、 DispatcherServlet响应用户。
6.JavaWeb
什么是JavaWeb?
Web:World Wide Web(WWW),即全球广域网,也称为万维网
JavaWeb:是用Java技术来解决Web互联网工程的技术栈
web包括:Web服务端和Web客户端两部分。Java在客户端的应用有Java Applet,现如今基本上已经淘汰。Java服务端的应用非常的丰富,比如Servlet,JSP、Thymeleaf、Apache Freemark、第三方框架(Spring)等。Java技术对Web领域的发展注入了强大的动力,也是起成为经久不衰的今典高级开发语言。
静态Web:界面内容固定,不会根据时效性、用户类型、权限等动态刷新界面所显示容。
动态Web:界面内容不固定,动态实时改变所呈现的界面内容信息。
Java Web 其实就是一个技术的总和,把Web看成一个容器而已主要使用JavaEE技术来实现.在加上各种中间件。
7.JavaSE
JavaSE通常是指Java Standard
Edition,Java标准版,就是一般Java程序的开发就可以(如桌面程序),可以看作是JavaEE的子集。
JavaSE是java的基石,如果将java程序想象成一座高楼大厦,那么JavaSE就是地基。
官方解释:
Java SE(Java Platform,Standard Edition)
Java SE 以前称为 J2SE。
它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。
Java SE 包含了支持 Java Web服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。
JavaSE包含:
面向对象
多线程
IO流
javaSwing…
8.JavaEE
JavaEE是指Java Enterprise Edition,Java企业版,多用于企业级开发,包括web开发等等。也叫J2EE
JavaEE就是在JavaSE的基础上,添砖加瓦后出现的一种规范,说是框架也行。JavaEE 是 Java 应用最广泛的部分。
官方解释:
Java EE,Java 平台企业版(Java Platform Enterprise Edition) 之前称为Java 2
Platform, Enterprise Edition (J2EE) 2018年3月更名为 Jakarta
EE(这个名称应该还没有得到群众认可)。 是 Sun 公司为企业级应用推出的标准平台,用来开发B/S架构软件。
JavaEE包含:
serclet
jstl
jsp
spring
mybatis
==========================================================
三、框架对比
1.Spring和SpringMvc:
spring是一个一站式的轻量级的java开发框架,核心是控制反转(IOC)和面向切面(AOP),针对于开发的WEB层(springMvc)、业务层(Ioc)、持久层(jdbcTemplate)等都提供了多种配置解决方案;
springMvc是spring基础之上的一个MVC框架,主要处理web开发的路径映射和视图渲染,属于spring框架中WEB层开发的一部分;
2.SpringMvc和SpringBoot:
springMvc属于一个企业WEB开发的MVC框架,涵盖面包括前端视图开发、文件配置、后台接口逻辑开发等,XML、config等配置相对比较繁琐复杂;
springBoot框架相对于springMvc框架来说,更专注于开发微服务后台接口,不开发前端视图,同时遵循默认优于配置,简化了插件配置流程,不需要配置xml,相对springmvc,大大简化了配置流程;
3.SpringBoot和SpringCloud
关系与区别
SpringBoot只是一个快速开发框架,使用注解简化了xml配置,内置了Servlet容器,以Java应用程序进行执行。
SpringCloud是一系列框架的集合,可以包含SpringBoot。
spring boot使用了默认大于配置的理念,集成了快速开发的spring多个插件,同时自动过滤不需要配置的多余的插件,简化了项目的开发配置流程,一定程度上取消xml配置,是一套快速配置开发的脚手架,能快速开发单个微服务;
spring cloud大部分的功能插件都是基于springBoot去实现的,springCloud关注于全局的微服务整合和管理,将多个springBoot单体微服务进行整合以及管理; springCloud依赖于springBoot开发,而springBoot可以独立开发;
SpringBoot是微服务框架吗?
1、SpringBoot只是一个快速开发框架,算不上微服务框架。
2、SpringCloud+SpringBoot 实现微服务开发。具体的来说是,SpringCloud具备微服务开发的核心技术:RPC远程调用技术;SpringBoot的web组件默认集成了SpringMVC,可以实现HTTP+JSON的轻量级传输,编写微服务接口,所以SpringCloud依赖SpringBoot框架实现微服务开发。
4.JavaEE、JavaSE和JavaME
Java 平台有三个版本,这使软件开发人员、服务提供商和设备生产商可以针对特定的市场进行开发:
Java SE(Java Platform,Standard Edition)。Java SE 以前称为 J2SE。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java Platform,Enterprise Edition(Java EE)提供基础。
Java EE(Java Platform,Enterprise Edition)。这个版本以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序。
Java ME(Java Platform,Micro Edition)。这个版本以前称为 J2ME。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于 Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。
————————————————