面试题总结02

今天,总结了一些面试题:
1.请写出spring中常用的依赖注入方式。
常见的就是setter注入和构造方法注入。
另外还有静态工厂的方法注入、实例工厂的方法注入。
2.简述Spring中IOC容器常用的接口和具体的实现类。
1、BeanFactory SpringIOC容器的基本设置,是最底层的实现, 面向框架本身的。
2、ApplicationContext BeanFactory的子接口,提供了更多高级的特定。面向开发者的。
3、ConfigurableApplicationContext,ApplicationContext的子接口,扩展出了close和refresh等关闭刷新容器的方法
4、ClassPathXmlApplicationContext:从classpath的XML配置文件中读取上下文,并生成上下文定义。应用程序上下文从程序环境变量中取得。
5、FileSystemXmlApplicationContext:由文件系统中的XML配置文件读取上下文。
6、XmlWebApplicationContext:由Web应用的XML文件读取上下文。
3.请解释Spring Bean的生命周期。
1.默认情况下,IOC容器中bean的生命周期分为五个阶段:
1、调用构造器或者是通过工厂的方式创建Bean对象。
2、给bean对象的属性注入值。
3、调用初始化方法,进行初始化,初始化方法是通过init-method来指定的。
4、使用。
5、IOC容器关闭时, 销毁Bean对象。
2. 当加入了Bean的后置处理器后,IOC容器中bean的生命周期分为七个阶段:
1、调用构造器或者是通过工厂的方式创建Bean对象。
2、给bean对象的属性注入值。
3、执行Bean后置处理器中的postProcessBeforeInitialization。
4、调用初始化方法,进行初始化,初始化方法是通过init-method来指定的。
5、执行Bean的后置处理器中postProcessAfterInitialization。
6、使用。
7、IOC容器关闭时, 销毁Bean对象。
4.简单的谈一下SpringMVC的工作流程。
1、用户发送请求至前端控制器DispatcherServlet。
2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给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响应用户。
5.MyBatis中#{}和$ {}的区别是什么。
#{}是预编译处理,$ {}是字符串替换。
Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;
Mybatis在处理$ {}时,就是把$ {}替换成变量的值。
使用#{}可以有效的防止SQL注入,提高系统安全性。
6.Mybatis结果集的映射方式有几种,并分别解释每种映射方式如何使用。
自动映射,通过resultType来指定要映射的类型即可。
自定义映射,通过resultMap来完成具体的映射规则,指定将结果集中的哪个列映射到对象的哪个属性。
7.Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?
不同的Xml映射文件,如果配置了namespace,那么id可以重复;如果没有配置namespace,那么id不能重复;
8.简述Spring中bean的作用域。
1、singleton 表示在spring容器中的单例,通过spring容器获得该bean时总是返回唯一的实例。
2、prototype表示每次获得bean都会生成一个新的对象。
3、request表示在一次http请求内有效(只适用于web应用)。
4、session表示在一个用户会话内有效(只适用于web应用)。
5、global session表示在全局会话内有效(只适用于web应用)。
9.简述Spring中自动装配常用的两种装配模式。
byName:根据bean对象的属性名进行装配。byType:根据bean对象的属性的类型进行装配,需要注意匹配到多个兼容类型的bean对象时,会抛出异常。
10.请解释简述Springmvc中ContextLoaderListener的作用以及实现原理。
1、作用:ContextLoaderListener的作用是通过监听的方式在WEB应用服务器启动时将Spring的容器对象进行初始化。
2、原理:ContextLoaderListener实现了ServletContextListener接口,用于监听ServletContext的创建,当监听到ServletContext创建时,在对应contextInitialized方法中,将Spring的容器对象进行创建,并将创建好的容器对象设置到ServletContext域对象中,目的是让各个组件可以通过ServletContext共享到Spring的容器对象。

猜你喜欢

转载自blog.csdn.net/m0_49528461/article/details/108309735
今日推荐