JAVASSM框架面试题

1.SpringMVC的工作流程?

1. 用户发送请求至前端控制器DispatcherServlet

2. DispatcherServlet收到请求调用HandlerMapping处理器映射器。

3. 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

4. DispatcherServlet通过HandlerAdapter处理器适配器调用处理器

5. 执行处理器(Controller,也叫后端控制器)。

6. Controller执行完成返回ModelAndView

7. HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet

8. DispatcherServlet将ModelAndView传给ViewReslover视图解析器

9. ViewReslover解析后返回具体View

10. DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。

11. DispatcherServlet响应用户

2.Spring在SSM起什么作用?

Spring是一个轻量级框架,也是一个容器,Spring实质上讲就是一个Bean工厂,主要用来管理Bean的生命周期和框架集成。有IOC控制反转,DI依赖注入,控制反转是把dao依赖注入到servic层,然后service层反转给action层,Spring的顶层容器为BeanFactory,常用的ApplicationContext为它的子接口,实现了工厂模式,Spring还提供了AOP的支持,方便在切面级开发,

3. 怎么样理解IOC和DI     ?

 在使用Spring框架的过程中、一定会用到控制反转、但是往往所需要的资源还需要其他资源的支持、个过程就需要依赖注入的支持

4. Spring的事务,事务的作用。

编程式事务管理:这意味你通过编程的方式管理事务,给你带来极大的灵活性,但是难维护。

• 声明式事务管理:这意味着你可以将业务代码和事务管理分离,你只需用注解和XML配置来管理事务。

5.Spring的IOC你在项目中是怎么使用的?

IOC主要来解决对象之间的依赖问题,把所有的bean的依赖关系通过配置文件或者注解关联起来,降低了耦合度

6.Spring的配置文件有哪些内容?

 开启事务注解驱动

• 事务管理器

• 开启注解功能,并配置扫描包

• 配置数据源

• 配置SQL会话工厂、别名、映射文件

• 不用编写DAO层的实现类(代理模式)

7.说下Spring的注解?

@Controller

• @Service

• @Component

• @RequestMapping

• @Resource、@Autowired

• @ResponseBody

• @Transactional

 8.Spring DI的几种方式?

(1)构造器注入:通过构造方法初始化

• (2)setter注入:通过setter方法初始化注入

• 注意:在实际开发中常用setter注入。

 9.@RequestMapping注解用在类上面有什么作用?

该注解是用来映射一个URL到一个类或一个特定的方处理方法上。

10.SpringMVC怎么样设定重定向和转发的      ?

在返回值前面加”forward:”就可以让结果转发,譬如”forward:user.do?name=method4” 在返回值前面加”redirect:”就可以让返回值重定向,譬如”redirect:http://www.uu456.com”

11. MyBatis怎么配置一对多?

一对多的关系 :property: 指的是集合属性的值, ofType:指的是集合中元素的类型

12. MyBatis怎样配置多对一?

多对一的关系:property: 指的是属性的值, javaType:指的是属性的类型

13.简单介绍下你对mybatis的理解?

1. mybatis配置

2. SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了mybatis的运行环境等信息。

3. mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。

4. 通过mybatis环境等配置信息构造SqlSessionFactory即会话工厂

5. 由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行。

6. mybatis底层自定义了Executor执行器接口操作数据库,Executor接口有两个实现,一个是基本执行器、一个是缓存执行器。

7. Mapped Statement也是mybatis一个底层封装对象,它包装了mybatis配置信息及sql映射信息等。mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。

8. Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对preparedStatement设置参数。

9. Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo,Executor通过Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。

14. SSM如何搭建:三个框架的搭建?

15. MyBatis:$与#之间的区别: 两者实现的功能:将传过来的数据拿到。

#调用的类似PrepareStatement,防注入。#拿到的是对应的值。 id=1, #id#:1

$不能防注入。 $id$:id

发表评论

您的电子邮箱地址不会被公开。