A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 就业高冷派 黑马粉丝团   /  2018-11-23 16:09  /  8067 人查看  /  128 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

公司名称:西安软通动力
注册规模:10000人以上
公司地址:西安市长安区沣东新城
公司图片:
面试经历:
1:简单说说springMVC的运行原理?

  1.springmvc将所有的请求都提交给DispatcherServlet,它会委托应用系统的其他模块负责对请求进行真正的处理工作。

  2.DispatcherServlet查询一个或多个HandlerMapping,找到处理请求的Controller.

  3.DispatcherServlet将请求提交到目标Controller

  4.Controller进行业务逻辑处理后,会返回一个ModelAndView

  5.DispathcherServlet查询一个或多个ViewResolver视图解析器,找到ModelAndView对象指定的视图对象;

  6.视图负责将结果显示到客户端;

2:Struts工作机制?为什么要使用Struts?

工作机制:

Struts的工作流程:

在web应用启动时就会加载初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象,当ActionServlet接收到一个客户请求时,将执行如下流程.

  (1)检索和用户请求匹配的Action Mapping实例,如果不存在,就返 回请求路径无效信息;

  (2)如果Action Form实例不存在,就创建一个Action Form对象,把客户提交的表单数据保存到Action Form对象中;

  (3)根据配置信息决定是否需要表单验证.如果需要验证,就调用Action Form的validate()方法;

  (4)如果Action Form的validate()方法返回null或返回一个不包含Action Message的 ActuibErrors对象,就表示表单验证成功;

  (5)Action Servlet 根据Action Mapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;

  (6)Action的execute()方法返回一个Action Forward对象,Action Servlet再把客户请求转发给 Action Forward对象指向的JSP组件;

  (7)Action Forward对象指向JSP组件生成动态网页,返回给客户;

为什么要用:

JSP、Servlet,JavaBean技术的出现给我们构建强大的企业应用系统提供了可能。但用这些技术构建的系统非常的繁乱,所以在此之上,我们需要一个规则、一个把这些技术组织起来的规则,这就是框架,Struts便应运而生。

3:如何优化Hibernate?

     1. 使用双向一对多关联,不使用单向一对多

  2.灵活使用单向一对多关联

  3.不用一对一,用多对一取代

  4.配置对象缓存,不使用集合缓存

  5.一对多集合使用Bag,多对多集合使用Set

  6.继承类使用显式多态

  7.表字段要少,表关联不要怕多,有二级缓存撑腰

4:spring的工作原理?

Spring 已经用过一段时间了,感觉Spring是个很不错的框架。

内部最核心的就是IOC了,动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射,反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置文件来动态的创建对象,和调用对象里的方法的 。

Spring还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是在调用这类对象的具体方法的前后去调用你指定的 模块)从而达到对一个模块扩充的功能。这些都是通过配置类达到的。

Spring目的:就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明管理的(Spring根据这些配置 内部通过反射去动态的组装对象)

5:拦截器和过滤器的区别

  1、拦截器是基于java反射机制的,而过滤器是基于函数回调的。

  2、拦截器不依赖于servlet容器,过滤器依赖于servlet容器。

  3、拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。

  4、拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。

  5、在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。

6:怎么使用Spring配置事务?

Spring同时支持编程式事务策略和声明式事务策略,大部分时候都采用声明式事务策略。

声明式事务管理的配置方式,通常有以下4种:

  (1)使用TransactionProxyFactoryBean为目标Bean生成事务代理的配置。此方式是最传统、配置文件最臃肿、最难以阅读的方式。

  (2)采用Bean继承的事务代理配置方式,比较简洁,但依然是增量式配置。

  (3)采用BeanNameAutoProxyCreator,根据Bean Name自动生成事务代理的方式。这是直接利用Spring的AOP框架配置事务代理的方式,需要对Spring的AOP框架有所理解。但这种方式避免了增量式配置,效果非常不错。

  (4)采用DefaultAdvisorAutoProxyCreator,直接利用Spring的AOP框架配置事务代理的方式,效果非常不错,只是这种配置方式的可读性不如第3种方式。

7:.什么是AOP,AOP的作用是什么?

面向切面编程(AOP)提供另外一种角度来思考程序结构,通过这种方式弥补了面向对象编程(OOP)的不足。

除了类(classes)以外,AOP提供了切面。切面对关注点进行模块化,例如横切多个类型和对象的事务管理。

Spring的一个关键的组件就是AOP框架,可以自由选择是否使用AOP,提供声明式企业服务,特别是为了替代EJB声明式服务。

最重要的服务是声明性事务管理,这个服务建立在Spring的抽象事物管理之上。

允许用户实现自定义切面,用AOP来完善OOP的使用,可以把Spring AOP看作是对Spring的一种增强.

总结:面试官对实际开发经验比较看重, 对框架的使用也比较看重,以上是我面试的经过。





128 个回复

正序浏览

努力工作,天天向上~
回复 使用道具 举报
小西西哦 发表于 2018-12-14 14:58
6666666666666666666666666666666666666666666666666

努力工作,天天向上~
回复 使用道具 举报
哦嗨呦 发表于 2018-12-14 10:18
顶!!!!!!!!!

努力工作,天天向上~
回复 使用道具 举报

努力工作,天天向上~
回复 使用道具 举报
独上兰舟 发表于 2018-12-13 18:45
6666666666666666666666666666666

努力工作,天天向上~
回复 使用道具 举报

努力工作,天天向上~
回复 使用道具 举报

努力工作,天天向上~
回复 使用道具 举报
760486198 发表于 2018-12-13 18:35
666666666666666666666666666666

努力工作,天天向上~
回复 使用道具 举报
kdhdjdj 发表于 2018-12-13 16:22
66666666666666666666666666666666666666

努力工作,天天向上~
回复 使用道具 举报

努力工作,天天向上~
回复 使用道具 举报
1467584 发表于 2018-12-13 16:03
666666666666666666666666666666666666

努力工作,天天向上~
回复 使用道具 举报
小丹子 发表于 2018-12-13 15:21
内部图,哥们不敢拍啊!

努力工作,天天向上~
回复 使用道具 举报

努力工作,天天向上~
回复 使用道具 举报

努力工作,天天向上~
回复 使用道具 举报

努力工作,天天向上~
回复 使用道具 举报

努力工作,天天向上~
回复 使用道具 举报

努力工作,天天向上~
回复 使用道具 举报

努力工作,天天向上~
回复 使用道具 举报

努力工作,天天向上~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马