JAVASSM框架面试题「建议收藏」

JAVASSM框架面试题「建议收藏」最全ssm框架面试题

大家好,又见面了,我是你们的朋友全栈君。(1)
Spring在SSM起什么作用

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

(2)
怎么样理解IOC和DI

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

(3)Spring的事务,事务的作用。


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


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

(3)
Spring的IOC你在项目中是怎么使用的?


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

(5)Spring的配置文件有哪些内容?


开启事务注解驱动


事务管理器


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


配置数据源


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


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

(6)说下Spring的注解


@Controller


@Service


@Component


@RequestMapping


@Resource、@Autowired


@ResponseBody


@Transactional

(7)为什么要用Spring


降低对象耦合度,让代码更加清晰,提供一些常见的模版

(8)Spring DI的几种方式


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


<constructor-arg name=”dao”</constructor-arg>


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


<property name=”dao” ref=”dao2″></property>


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

(1)SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决

是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的,解决方案是在控制器里面不能写字段

(2)SpingMvc中的控制器的注解

@Controller 注解:该注解表明该类扮演控制器的角色,Spring不需要你继承任何其他控制器基类或引用Servlet API。

(3)@RequestMapping注解用在类上面有什么作用

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

(4)
我想在拦截的方法里面得到从前台传入的参数,怎么得到

直接在形参里面声明这个参数就可以,但必须名字和传过来的参数一样

(5)如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象

直接在方法中声明这个对象,SpringMvc就自动会把属性赋值到这个对象里面

(6)SpringMvc中函数的返回值是什么

返回值可以有很多类型,有String, ModelAndView,List,Set等,一般用String比较好,如果是AJAX请求,返回的可以是一个集合

(7)SpringMvc怎么处理返回值的

SpringMvc根据配置文件中InternalResourceViewResolver(内部资源视图解析器)的前缀和后缀,用前缀+返回值+后缀组成完整的返回值

(8)SpringMVC怎么样设定重定向和转发的

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

(9)SpringMvc中有个类把视图和数据都合并的一起的,叫什么

ModelAndView

(10)怎么样把数据放入Session里面

可以声明一个request,或者session先拿到session,然后就可以放入数据,或者可以在类上面加上@SessionAttributes注解,里面包含的字符串就是要放入session里面的key

(11)SpringMvc怎么和AJAX相互调用的

通过Jackson框架就可以把Java里面的对象直接转化成js可以识别的Json对象 具体步骤如下 :

1.加入Jackson.jar

2.在配置文件中配置json的映射

3.在接受Ajax方法里面可以直接返回Object,List等,但方法前面要加上@ResponseBody注解

(12)当一个方法向AJAX返回对象,譬如Object,List等,需要做什么处理

要加上@ResponseBody注解

(13)讲下SpringMvc的执行流程

系统启动的时候根据配置文件创建spring的容器, 首先是发送http请求到核心控制器DispatcherServlet,spring容器通过映射器去寻找业务控制器,

使用适配器找到相应的业务类,在进业务类时进行数据封装,在封装前可能会涉及到类型转换,执行完业务类后使用ModelAndView进行视图转发,

数据放在model中,用map传递数据进行页面显示。

(1)什么是MyBatis的接口绑定,有什么好处

接口映射就是在IBatis中任意定义接口,然后把接口里面的方法和SQL语句绑定,我们直接调用接口方法就可以,这样比起原来了SqlSession提供的方法我们可以有更加灵活的选择和设置.

(2)什么情况下用注解绑定,什么情况下用xml绑定

当Sql语句比较简单时候,用注解绑定,当SQL语句比较复杂时候,用xml绑定,一般用xml绑定的比较多

(3)如果要查询的表名和返回的实体Bean对象不一致,那你是怎么处理的?

在MyBatis里面最主要最灵活的的一个映射对象的ResultMap,在它里面可以映射键值对, 默认里面有id节点,result节点,它可以映射表里面的列名和对象里面的字段名. 并且在一对一,一对多的情况下结果集也一定要用ResultMap

(4)MyBatis在核心处理类叫什么

MyBatis里面的核心处理类叫做SqlSession

(5)讲下MyBatis的缓存

MyBatis的缓存分为一级缓存和二级缓存,一级缓存放在session里面,默认就有,二级缓存放在它的命名空间里,

默认是打开的,使用二级缓存属性类需要实现Serializable序列化接口(可用来保存对象的状态),可在它的映射文件中配置<cache/>

(6)MyBatis(IBatis)的好处是什么

ibatis把sql语句从Java源程序中独立出来,放在单独的XML文件中编写,给程序的

维护带来了很大便利。

ibatis封装了底层JDBC API的调用细节,并能自动将结果集转换成JavaBean对象,大大简化了Java数据库编程的重复工作。

因为Ibatis需要程序员自己去编写sql语句,程序员可以结合数据库自身的特点灵活控制sql语句,

因此能够实现比hibernate等全自动orm框架更高的查询效率,能够完成复杂查询。

(7)MyBatis怎么配置一对多?

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

(8)MyBatis怎样配置多对一?

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149887.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月17日 下午12:46
下一篇 2022年6月17日 下午1:00


相关推荐

  • hashmap基本原理_哈希表的实现原理

    hashmap基本原理_哈希表的实现原理HashMap其实也是一个线性的数组实现的,所以可以理解为其存储数据的容器就是一个线性数组。这可能让我们很不解,一个线性的数组怎么实现按键值对来存取数据呢?这里HashMap有做一些处理。  首先HashMap里面实现一个静态内部类Entry,其重要的属性有key,value,next,从属性key,value我们就能很明显的看出来Entry就是HashMap键值对实现的一个基础bean,我们上面说到HashMap的基础就是一个线性数组,这个数组就是Entry[],Map里面的内容都保存在Ent

    2025年8月12日
    4
  • DeepSeek文献综述保姆级教程:从文献检索到成文全流程解析(附指令)

    DeepSeek文献综述保姆级教程:从文献检索到成文全流程解析(附指令)

    2026年3月16日
    1
  • make menuconfig makefile kconfig详解

    make menuconfig makefile kconfig详解前面有一片文章分析makemenuconfig执行过程:http://blog.csdn.net/xinyuan510214/article/details/50964808今天,将一下makemenuconfigmakefilekconfig等几个容易混淆的关键操作。===1、内核Makefile概述(linux2.6)Linux内核的Makefile分为5个部分

    2022年5月27日
    67
  • onedrive免费扩容25t_onedrive怎么免费扩容1T

    onedrive免费扩容25t_onedrive怎么免费扩容1TOneDrive存储我们都知道没有开office365,自己onedrive的储存空间只有5GB,onenote做笔记以及用onedrive同步文档空间不够,但是又不想开office365;所以在网上看到别人说onedrive可以推荐别人注册,可以扩容10GB;加起来一共15GB,用来做笔记完全够用;或许有大佬会说可以弄到Office教育版的微软账号,有5T或1T的存储空间,但是这个会涉及到账号里面文档的安全性,这种账号是属于教育机构的,全局管理员可以有权查看里面储存的文件并且有权删去账号,这样的

    2025年10月17日
    3
  • Canny 边缘检测算法

    Canny 边缘检测算法Canny 边缘检测算法 其对受白噪声影响的阶跃型边缘是最优的 目的 返回一个二值图像 非零数值表示图像中边缘的存在 返回与边缘相关的尺度和方向信息标准 检测标准 不丢失重要的边缘 不应有虚假的边缘定位标准 实际边缘与检测到的边缘位置之间的偏差最小单响应标准 将多个响应降低为单个边缘响应 这个标准可以解决受噪声影响的边缘问题 以及起到地址非平滑边缘检测算子的作用 步骤 A 用高斯滤

    2026年3月19日
    2
  • python输出语句print用法_python print输出

    python输出语句print用法_python print输出【时间】2018.10.12【题目】python中的print输出函数用法总结 一、直接输出无论什么类型,数值,布尔,列表,字典…都可以直接输出,或者先赋值给变量,再输出。  二、格式化输出下面是《Python基础编程》中对格式化输出的总结:(1).%字符:标记转换说明符的开始(2).转换标志:-表示左对齐;+表示在转换值之前要加上正负号;“”(…

    2025年7月10日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号