java ssm框架面试重点-ssm框架面试基础知识
文章目录
1. 对比jdbc请简述Mybatis框架的好处有哪些? 原先使用jdbc时
(1)每次CRUD都要写那六大步骤,太冗余了。
(2)频繁连接,释放数据库资源,降低系统性能
(3)SQL语句硬编码,难以维护(sql都写到.java里了)
(4)参数和占位符对应问题
(5)结果集解析复杂,列名硬编码mybatis框架
是一个优秀的持久层(dao)框架,对JDBC进行了封装,使得开发者只需要关注Sql语句(业务)本身即可,无需开发者处理加载驱动、获取连接、创建Statement等繁琐的过程, 实现了ORM思想。 2. 简述Spring的AOP,并说明其应用场景有哪些?
AOP:面向切面编程,它是一种编程思想,一种设计理念,运用AOP编程思想,可以提高代码的可重用性,使编码更加简洁,更易于维护。
简单的说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上java ssm框架面试重点,对我们的已有方法进行增强。
应用场景:事务传播和日志、统计方法等。
3. 介绍一下@ResponseBody注解
@ResponseBody是spring.web包下的一个注释,其主要作用是再返回数据的时候将对象转化为json格式返回,主要适用于前端ajax请求。
@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区java ssm框架面试重点,通常用来返回JSON数据或者是XML数据。
注意:在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。
4. 简述SpringMVC执行流程 5. mybatis #{}和${}有什么区别 6. 简述@Param注解的用法
@Param主要就是给传入的参数命名,一般在mapper接口中有多个参数时是必须使用的。如果参数只有一个就可以使用Mybatis默认接收方式即可。
当使用了@Param注解来声明参数的时候,SQL语句取值使用#{},KaTeX parse error: Expected 'EOF', got '#' at position 36: …解声明参数的时候,必须使用的是#̲{}来取参数。使用{}方式取值会报错。
不使用@Param注解时,参数只能有一个,并且是Javabean。在SQL语句里直接引用JavaBean的属性即可。
7. mybatis 中 ResultMap标签的属性都有什么?并说明作用 id:给当前ResultMap设定唯一名称type: 设定当前ResultMap类型autoMapping:自动映射封装信息extends:继承 父类有的那一部分属性标签(id、result标签)就不用自己写了 8. mybatis的mapper文件中 namespace属性的作用是什么?
Mapper中的namespace是用于绑定Dao接口的,即面向接口编程,它的功能和,mapper接口的实现类Impl相当,但是他不用写接口实现类,通过namesapce(命名空间)的绑定直接找到相应方法,执行相应的SQL语句。
9. ssm框架如何通过注解配置事务生效,说明一下步骤。 开启注解扫描
<context:component-scan base-package="edu.xja"/>
配置事务管理器
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
bean>
开启事务驱动
<tx:annotation-driven transaction-manager="transactionManager"/>
在业务层类或方法上添加注解@Transactional
@Transactional
首先说cookie和session都是会话对象。
不同的是session是服务器会话对象,数据保存在服务器内存中,cookie是客户端会话对象, 数据通过浏览器保存在本地硬盘。
session的默认生命周期是30分钟,为了能够保证会话功能的实现,每一个session对象创建的时候都有一个sessionid通过响应对象存储到浏览器的cookie中,这样只要浏览器访问服务器携带这个id值,就能拿到这个session的数据,也表示会话进行中。一旦浏览器关闭cookie声明周期结束,再次访问服务器时因为丢失了sessionid表示会话也结束了,那么服务器就会创建一个新的session对象和存储一个新的sessionid在浏览器,这样一个新的会话就开启了。
11. 请解释Spring Bean的生命周期
SpringBean的生命周期简单易懂,在一个Bean实例被初始化时,需要执行一系列的初始化操作,以达到可用状态。同样的,当一个Bean不在被调用时需要进行相关的解析操作,并从Bean容器中移除。