SSM阶段考试题

一、简述Spring中IOC容器常用的接口和具体的实现类。

  1. BeanFactory SpringIOC容器的基本设置,是最底层的实现, 面向框架本身的.

  2. ApplicationContext BeanFactory的子接口, 提供了更多高级的特定. 面向开发者的.

  3. ConfigurableApplicationContext, ApplicationContext的子接口,扩展出了 close 和 refresh等 关闭 刷新容器的方法

    4.ClassPathXmlApplicationContext:从classpath的XML配置文件中读取上下文,并生成上下文定义。应用程序上下文从程序环境变量中取得。
    5、FileSystemXmlApplicationContext :由文件系统中的XML配置文件读取上下文。
    6、XmlWebApplicationContext:由Web应用的XML文件读取上下文。
    二、说出Spring 或者 Springmvc中常用的5个注解 ,并解释含义
    [1]. @Component 基本注解,标识一个受Spring管理的组件
    [2]. @Controller 标识为一个表示层的组件
    [3]. @Service 标识为一个业务层的组件
    [4]. @Repository 标识为一个持久层的组件
    [5]. @Autowired 自动装配
    [6]. @Qualifier(“”) 具体指定要装配的组件的id值
    [7]. @RequestMapping() 完成请求映射
    [8]. @PathVariable 映射请求URL中占位符到请求处理方法的形参

    只要说出5个注解并解释含义即可,如上答案只做参考
    三、请解释Spring Bean的生命周期?
    1.默认情况下,IOC容器中bean的生命周期分为五个阶段:
    ① 调用构造器 或者是通过工厂的方式创建Bean对象
    ② 给bean对象的属性注入值
    ③ 调用初始化方法,进行初始化, 初始化方法是通过init-method来指定的.
    ④ 使用
    ⑤ IOC容器关闭时, 销毁Bean对象.

2.当加入了Bean的后置处理器后,IOC容器中bean的生命周期分为七个阶段:
① 调用构造器 或者是通过工厂的方式创建Bean对象
② 给bean对象的属性注入值
③ 执行Bean后置处理器中的 postProcessBeforeInitialization
④ 调用初始化方法,进行初始化, 初始化方法是通过init-method来指定的.
⑤ 执行Bean的后置处理器中 postProcessAfterInitialization
⑥ 使用
⑦ IOC容器关闭时, 销毁Bean对象
只需要回答出第一点即可。 第二点也回答可适当加分.
四、简述SpringMvc里面拦截器是如何定义,如何配置,拦截器中三个重要的方法
(1).定义: 有两种方式
[1]. 实现HandlerInterceptor接口
[2]. 继承HandlerInterceptorAdapter
(2).配置:
mvc:interceptors

(3).拦截器中三个重要的方法
	[1]. preHandle
	[2]. postHandle
	[3]. afterCompletion

五、简单的谈一下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响应用户
六、MyBatis中 #{}和KaTeX parse error: Expected 'EOF', got '#' at position 11: {}的区别是什么? #̲{}是预编译处理,{}是字符串替换。
Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;
Mybatis在处理 时 , 就 是 把 {}时,就是把 {}替换成变量的值。
使用#{}可以有效的防止SQL注入,提高系统安全性。
七、简述MyBatis的单个参数、多个参数如何传递及如何取值。
MyBatis传递单个参数,如果是普通类型(String+8个基本)的,取值时在#{}中可以任意指定,如果是对象类型的,则在#{}中使用对象的属性名来取值
MyBatis传递多个参数,默认情况下,MyBatis会对多个参数进行封装Map. 取值时
在#{}可以使用0 1 2 … 或者是param1 param2…

  MyBatis传递多个参数,建议使用命名参数,在Mapper接口的方法的形参前面使用
  @Param() 来指定封装Map时用的key. 取值时在#{}中使用@Param指定的key.

八、MyBatis如何获取自动生成的(主)键值?
在标签中使用 useGeneratedKeys 和 keyProperty 两个属性来获取自动生成的主键值。
示例:

insert into names (name) values (#{name})

九、简述Mybatis的动态SQL,列出常用的6个标签及作用
动态SQL是MyBatis的强大特性之一 基于功能强大的OGNL表达式。
动态SQL主要是来解决查询条件不确定的情况,在程序运行期间,根据提交的条件动态的完成查询
常用的标签:
: 进行条件的判断
:在判断后的SQL语句前面添加WHERE关键字,并处理SQL语句开始位置的AND 或者OR的问题
:可以在SQL语句前后进行添加指定字符 或者去掉指定字符.
: 主要用于修改操作时出现的逗号问题
:类似于java中的switch语句.在所有的条件中选择其一
:迭代操作

十、简述Spring中如何给bean对象注入集合类型的属性。
Spring使用 等标签给对应类型的集合注入值
十一、简述Spring 中bean的作用域
总共有四种作用域:

  1. Singleton 单例的
  2. Prototype 原型的
  3. Request
  4. Session
    十二、简述Springmvc中ContextLoaderListener的作用以及实现原理
  5. 作用:ContextLoaderListener的作用是通过监听的方式在WEB应用服务器启动时将Spring的容器对象进行初始化.
  6. 原理: ContextLoaderListener 实现了ServletContextListener接口,用于监听
    ServletContext的创建,当监听到ServletContext创建时,在对应contextInitialized
    方法中,将Spring的容器对象进行创建,并将创建好的容器对象设置到ServletContext域对象中,
    目的是让各个组件可以通过ServletContext共享到Spring的容器对象
    十三、简述Mybatis提供的两级缓存,以及缓存的查找顺序
    MyBatis的缓存分为一级缓存和 二级缓存。
    一级缓存是SqlSession级别的缓存,默认开启。
    二级缓存是NameSpace级别(Mapper)的缓存,多个SqlSession可以共享,使用时需要进行配置开启。

缓存的查找顺序: 二级缓存 一级缓存 数据库

十四、简述Spring与Mybatis整合时,主要整合的两个地方:
7. SqlSession创建的问题,通过SqlSessionFactoryBean来配置用于创建SqlSession的信息。例如: Mybatis的核心配置文件、Mapper映射文件、数据源等
8. Mapper接口创建的问题, 使用MapperScannerConfigurer批量为MyBatis的Mapper接口生成代理实现类并将具体的对象交给Spring容器管理

十五、简述Spring声明式事务中@Transaction中常用的两种事务传播行为
通过propagation来执行事务的传播行为

REQUIRED: 使用调用者的事务,如果调用者没有事务,则启动新的事务运行
REQUIRES_NEW: 将调用者的事务挂起,开启新的事务运行。

十六、简述@RequestMapping注解的作用 可标注的位置 常用的属性

  1. 该注解的作用是用来完成请求 与 请求处理方法的映射
  2. 该注解可以标注在类上或者是方法上
  3. 常用的属性:
    value: 默认属性, 用于指定映射的请求URL
    method: 指定映射的请求方式
    params: 指定映射的请求参数
    headers: 指定映射的请求头信息

十七、简述REST中的四种请求方式及对应的操作
GET 查询操作
POST 添加操作
DELETE 删除操作
PUT 修改操作

十八、简述如何在myBatis中的增删改操作获取到对数据库的影响条数
直接在Mapper接口的方法中声明返回值即可.

十九、Springmvc中的控制器的注解用哪个,可以是否用别的注解代替
使用@Controller注解来标注控制器。 不能使用别的注解代替

二十、 简述Mybatis中使用Mapper接口开发,如何完成Mapper接口与SQL映射文件、方法与SQL语句的绑定
Mapper接口与SQL映射文件绑定: SQL映射文件中的namespace的值指定成Mapper接口的全类名
接口中方法与SQL语句的绑定: SQL语句的id 指定成接口中的方法名.

你可能感兴趣的:(个人学习记录)