专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 2020年Java面试题框架部分集

2020年Java面试题框架部分集

更新时间:2019-12-20 14:08:18 来源:赢咖4 浏览1858次

SSH三大框架的概述

  SSH为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。

  集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层),以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。

  struts标签库:Struts2默认的表达式语言是OGNL(Object-Graph Navigation Language),通过它可以存取对象的任意属性、调用对象的方法、遍历整个对象的结构图、实现字段类型转换等功能。

  JSP: HTML文件中插入Java程序段和JSP标记。

  web.xml: Struts2核心过滤器和监听器

  struts.xml: 管理应用中的Action映射,及Action处理结果和物理资源之间的映射。

  applicationContext.xml: 整合了struts和Hibernate。

  .hbm.xml:O/R Mapping(Object Relational Mapping)映射文件,实体和表的映射关系通过XML来描述的文件。在项目启动的时候加载到内存中。

  PO:Persistent Object,持久化对象

  整体的调用关系:JSP–Action–Service–DAO–PO–数据库

  什么是struts2

  Struts2是一个基于MVC设计模式的Web应用控制层框架,功能就是完成jsp页面和后台java代码的传值和跳转。

  Struts2的运行原理

  1:当前台发送一个以规定后缀相同的请求时 如:.action struts核心控制器会对其进行过滤拦截 核心控制器StrutsPrepareAndExecuteFilter

  2:核心控制器拦截请求后会根据请求的路径找到对应的java代码,通过路径中的类名(!前的部分)匹配struts.xml中action标签中的name属性来找到具体访问的类,!后的部分匹配类中的方法名

  3:当java类中完成处理逻辑会返回一个字符串,根据字符串匹配struts.xml中result标签的name属性,然后跳转到result标签内容指定的页面。

  Spring

  简单来说,spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。

  ◆ 轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的 处理开销也是微不足道的。此外,Spring是非侵入式的:典型地, Spring应用中的对象不依赖于Spring的特定类。

  ◆ 控制反转——Spring通过一种称作控制反转(IOC)的技术促进了松 耦合。当应用了IOC,一个对象依赖的其它对象会通过被动的方式传递 进来,而不是这个对象自己创建或者查找依赖对象。 这也是说spring是非侵入式的,动态注入对象,让一个对象的创建 不用new,可以自动生成,这就是利用JAVA里的反射,反射其实就是 在运行时动态的去创建、调用对象及其方法,spring就是在运行时,跟 xml spring的配置文件来动态的创建对象,和调用对象里面的方法 反射技术的使用使得我们不再像原始的工厂方法模式那样创建对象。反 射可以非常灵活的根据类的名称创建一个对象。所以spring只使用了 Prototype和Singleton这两个基本的模式。

  ◆ 面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离 应用的业务逻辑与系统级服务(例如审计(auditing)和事务 (transaction)管理,主要实现对事务的管理)进行内聚性的开发,其 机理来自于代理模式。应用对象只实现它们应该做的——完成业务逻辑 ——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例 如日志或事务支持。

  ◆ 容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。Spring是一个容器,凡是在容器里的对象才会有Spring所提供的这些服务和功能。凡是在spring的配置文件里面配置了,才能被spring管理;并享用spring提供的服务 。

  ◆ 框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。 所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。它们也为Spring中的各种模块提供了基础支持。

  谈Spring这个问题的时候,首先Spring中最为重要的无非就是IOC和AOP,而对IOC来讲,你讲一下IOC的定义,IOC就是说对象本身的创建不依赖应用本身,而是依赖于外部容器,如果没有IOC那么我们在我们的业务类,要调用DAO的方法,那么不得不做的一个动作就是创建一个DAO的实现类的实例,而创建这个对象本身是跟业务无关的,而这样违反了“高内聚,低耦合”,使类与类的联系非常紧密了。即使你不用new,你使用工厂模式,使用单利模式,也跟上面说的效果是一样的,而Spring本身就是一个大工厂,他帮我们造对象,帮我们管理bean对象,它帮我们注入我们所需的bean对象,这样对于以后的维护来讲,变的更为方便,也把与业务本身无关的东西提取出来了。体现了低耦合。而AOP本身就是一种思想,意为面向切面编程,而Spring对AOP做了部分实现,(举例说明)如果没有AOP,比如我们开发的系统中有发邮件,写日志,可想而知,系统中发邮件,写日志绝对的不是在一个地方用到,那么怎么办,肯定是在业务中写着重复的代码,而且干着与业务无关的事情,也就是说让发邮件,写日志跟业务一起混合在一起,那么这样肯定是不合理的。那么该怎么办,因此Spring提供了AOP,在你想写日志的方法给你切开,加入日志的操作,刚刚说spring是大工厂,那么对于spring的AOP来讲,我更加喜欢把它比喻成化妆师,只有你让spring帮你化妆,就能达到你意想不到的效果,总的来讲spring的AOP技术,他帮我们做很多与业务无关的操作,让业务层次更加清晰。

  Spring AOP事务的描述:

  在applicationContent.xml里通过aop:config里面先设定一个表达式,设定对service里那些方法 如:对add* ,delete*,update*等开头的方法进行事务拦截。我们需要配置事务的传播(propagation=“REQUIRED”)特性,通常把增,删,改以外的操作需要配置成只读事务(read-only=“true”).只读事务可以提高性能。之后引入tx:advice,在tx:advice引用 transactionManager(事务管理),在事务管理里再引入sessionFactory,sessionFactory注入 dataSource,最后通过aop:config引入txAdvice。

  事物的7种传播特性

  opropagation_requierd:如果当前没有事务,就新建一个事务,如果已存在一个事务中,加入到这个事务中,这是最常见的选择。

  opropagation_supports:支持当前事务,如果没有当前事务,就以非事务方法执行。

  opropagation_mandatory:使用当前事务,如果没有当前事务,就抛出异常。

  opropagation_required_new:新建事务,如果当前存在事务,把当前事务挂起。

  opropagation_not_supported:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

  opropagation_never:以非事务方式执行操作,如果当前事务存在则抛出异常。

  opropagation_nested:如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与propagation_required类似的操作

  Spring默认的事物传播行为是propagation_requierd

2020年Java面试题框架部分集

      以上就是赢咖4注册机构小编介绍的“2020年Java面试题框架部分集”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

相关推荐

最新最全java面试题及答案(初级到高级)

史上最全的中高级JAVA工程师面试题及答案汇总

Java高级开发工程师面试题

2019史上最全java面试题题库大全800题

哪有资深java工程师面试题

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>