ssm

一‘spring是啥?
spring是一个IOC容器,是一个AOP(DI)容器
用来管理表述层框架spring-mvc和mybatis(spring jdbc)框架等其他组件

IOC:控制反转,将new对象的权力交给spring容器,由它操控bean的生命周期
AOP:面向切面编程,以方法为一个切面的编程模式,OOP的延伸。增强方法,封装方法提高通用性解耦
DI:依赖注入,自动注入bean

二’spring中IOC三种实现机制?
依赖注入,构造注入,接口注入

三‘解释spring bean的生命周期?
在一个bean实例被初始化时,需要执行一系列的初始化操作以达到可用的状态
当一个bean不在被需要时进行相关的析构操作,并从bean容器中移除

Spring bean factory负责管理在spring容器中创建的bean的生命周期
bean的生命周期由两组回调方法init()/destroy()组成 回调接口InitializingBean和DisposableBean

四’spring框架中的单例beans是线程安全的么?
spring的beans默认是singleton单例,大部分的spring bean在(model层)service和dao类中并没有可变的状态

spring bean在view层存在的多种状态(View Mode对象)
需要自行保证线程安全,将多态bean作用域由singleton改为prototype
让每个线程都拥有一个实例,避免了线程并发操作同一个资源产生的脏数据问题

五‘简单介绍spring支持的常用的数据库事务传播属性?隔离级别?
支持事务执行
REQUIRED required不存在新建/MANDATORY mandatory不存在报错
以非事务方式执行
NEVER存在报错/NOT_SUPPORTED存在挂起/REQUIRES_NEW新建后挂起/SUPPORTS支持/NESTED nested同步

脏数据:事务A正在修改资源,事务B读取到了事务A已经修改好的资源,但事务A没有提交。此时事务B即脏读

脏读:读取错误的,无意义的数据
解决办法:事务隔离级别修改成READ_COMMITTED(读已提交)

不可重复读:A事务在校验数据时出错(B事务修改了数据),A事务2次查询结果不同
解决办法:事务隔离级别修改成REPEATABLE_READ(可重复读)

幻象读:A事务正在修改,B事务修改了一条数据。A事务修改完准备提交发现表中又多出一条数据
解决办法:事务隔离级别修改成SERIALIZABLE_READ(串行化)

六’怎样用Java的方式配置spring?java配置/xml配置/注解配置
三个注解 @configuration/@Bean/@ComponentScan(basePackages="")

七******‘spring-mvc是啥?
表诉层框架,前端控制器,方法级别映射注解@RequestMapping("")

八’简单的谈一下spring-mvc的工作流程?
1.用户发送请求至前端控制器DispatcherServlet
2.DispatcherServlet调用映射器HandlerMapping得到处理器及拦截器对象
3.DispatcherServlet调用适配器HandlerAdapter处理返回ModelView给视图解析器ViewReslover渲染View
4.DispatcherServlet渲染完后响应给用户浏览器

九‘如何解决post请求,get请求的中文乱码问题?
post是上传资源给服务器指向url 修改web.xml
get从服务器上获取资源 修改tomcat配置文件,对参数重新编码

十******‘mybatis是啥?
封装了JDBC的持久层框架

十一‘#{}与${}区别是什么?
#{}预编译,参数以?形式传递,调用PreparedStatement的set方法赋值,防止sql注入
${}字符串替换,在固定值的情况下使用

十二’实体类属性与数据库中字段名不对应怎么办?
在sql语句上给字段取别名,用property属性名,colum字段名映射

十三‘mybatis是如何进行分页的?分页插件的原理是什么?
内存分页:使用rowBounds对象进行分页,针对ResultSet结果集执行的内存分页

物理分页:使用mybatis的插件接口,自定义插件,在插件拦截方法内拦截待执行的sql,重写sql
mybatis-plus封装了物理分页

十四’mybatis中xml文件对应一个dao接口,这个dao接口的工作原理是什么?dao接口里的方法,参数不同时,方法能重载吗?
使用JDK的动态代理对象proxy拦截接口方法转而执行sql语句

mybatis xml文件中,每一个,,,标签都会被解析成一个MappedStatement对象
接口全类名+方法名拼接唯一对应一个MappedStatement,所以不能重载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值