ajax ssm 页面跳转_SSM框架的面试常见问题

阅读文本大概需要9分钟。

一、Spring面试题

1、Spring 在ssm中起什么作用?

  • Spring:轻量级框架

  • 作用:Bean工厂,用来管理Bean的生命周期和框架集成。

  • 两大核心:

  1. IOC/DI(控制反转/依赖注入) :把dao依赖注入到service层,service层反转给action层,Spring顶层容器为BeanFactory

  2. AOP:面向切面编程

2、Spring的事务?

  • 编程式事务管理:编程方式管理事务,极大灵活性,难维护。

  • 声明式事务管理:可以将业务代码和事务管理分离,用注解和xml配置来管理事务。

3、IOC 在项目中的作用?

作用:Ioc解决对象之间的依赖问题,把所有Bean的依赖关系通过配置文件或注解关联起来,降低了耦合度。

4、Spring的配置文件中的内容?

  • 开启事务注解驱动

  • 事务管理器

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

  • 配置数据库

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

  • 不用编写Dao层的实现类

5、Spring下的注解?

  • 注册
    @Controller    @Service  @Component

  • 注入
    @Autowired  @Resource

  • 请求地址
    @RequestMapping

  • 返回具体数据类型而非跳转
    @ResponseBody

6、Spring DI 的三种方式?

  • 构造器注入:通过构造方法初始化

  • setter方法注入:通过setter方法初始化

  • 接口注入

7、Spring主要使用了什么模式?

  • 工厂模式:每个Bean的创建通过方法

  • 单例模式:默认的每个Bean的作用域都是单例

  • 代理模式:关于Aop的实现通过代理模式

8、IOC,AOP的实现原理?

  • IOC:通过反射机制生成对象注入

  • AOP:动态代理

二、SpringMvc面试题

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

  • 问题:单例模式,在多线程访问时有线程安全问题

  • 解决方法:不要用同步,在控制器里面不能写字段

2、SpringMvc 中控制器的注解?

  • @Controller:该注解表明该类扮演控制器的角色

3、@RequestMapping 注解用在类上的作用?

  • 作用:用来映射一个URL到一个类或者一个特定的处理方法上

4、前台多个参数,这些参数都是一个对象,快速得到对象?

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

5、SpringMvc中函数的返回值?

String,ModelAndView,List,Set 等
一般String,Ajax请求,返回一个List集合

6、SpringMvc中的转发和重定向?

  • 转发:     return:"hello"

  • 重定向 :return:"redirect:hello.jsp"

7、SpringMvc和Ajax之间的相互调用?

通过JackSon框架把java里面对象直接转换成js可识别的json对象,具体步骤如下:
1、加入JackSon.jar
2、在配置文件中配置json的映射
3、在接受Ajax方法里面直接返回Object,list等,方法前面需要加上注解@ResponseBody

8、SpringMvc的工作流程图?

a003bda15a36255c1e5b729453360f11.png

1、DispatcherServlet前端控制器接收发过来的请求,交给HandlerMapping处理器映射器

2、HandlerMapping处理器映射器,根据请求路径找到相应的HandlerAdapter处理器适配器(处理器适配器就是那些拦截器或Controller)

3、HandlerAdapter处理器适配器,处理一些功能请求,返回一个ModelAndView对象(包括模型数据、逻辑视图名)

4、ViewResolver视图解析器,先根据ModelAndView中设置的View解析具体视图

5、然后再将Model模型中的数据渲染到View上

9、Struts2 和 SpringMvc的区别?

  1. 入口不同:

  • Struts2:filter过滤器

  • SpringMvc:一个Servlet即前端控制器

  1. 开发方式不同:

  • Struts2:基于类开发,传递参数通过类的属性,只能设置为多例

  • SpringMvc:基于方法开发(一个url对应一个方法),请求参数传递到方法形参,可以为单例也可以为多例(建议单例)

  1. 请求方式不同:

  • Struts2:值栈村塾请求和响应的数据,通过OGNL存取数据

  • SpringMvc:通过参数解析器将request请求内容解析,给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过request域传输到页面,jsp视图解析器默认使用的是jstl。

三、Mybatis面试题

1、Ibatis和Mybatis?

  • Ibatis:2010年,apache的Ibatis框架停止更新,并移交给了google团队,同时更名为MyBatis。从2010年后Ibatis在没更新过,彻底变成了一个孤儿框架。一个没人维护的框架注定被mybatis拍在沙滩上。

  • Mybatis:Ibatis的升级版本。

2、什么是Mybatis的接口绑定,有什么好处?

Mybatis实现了DAO接口与xml映射文件的绑定,自动为我们生成接口的具体实现,使用起来变得更加省事和方便。

3、什么情况用注解,什么情况用xml绑定?

  • 注解使用情况:Sql语句简单时

  • xml绑定使用情况:xml绑定 (@RequestMap用来绑定xml文件)

4、Mybatis在核心处理类叫什么?

SqlSession

5、查询表名和返回实体Bean对象不一致,如何处理?

映射键值对即可

  • column:数据库中表的列名

  • property:实体Bean中的属性名

6、Mybatis的好处?

  • 把Sql语句从Java中独立出来。

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

  • 自己编写Sql语句,更加的灵活。

  • 入参无需用对象封装(或者map封装),使用@Param注解

7、Mybatis配置一对多?

  • property:属性名

  • column:共同列

  • ofType:集合中元素的类型

  • select:要连接的查询

8、Mybatis配置一对一?

  • property:属性名

  • select:要连接的查询

  • column:共同列

  • javaType:集合中元素的类型

9 、${} 和 #{}的区别?

  • ${}:预编译处理,把${}直接替换成变量的值,不做任何转换。

  • #{}:字符串替换,sql中的#{}替换成?,有效的防止Sql语句注入。
    总结:一般用#{}来进行列的代替

10、获取上一次自动生成的主键值?

select last _insert_id()

11、Mybatis如何分页,分页原理?

  • RowBounds对象分页

  • 在Sql内直接书写,带有物理分页

12、Mybatis工作原理?

7620f5989867ef3bc5a6313cd9edd8e4.png

原理:

  • 通过SqlSessionFactoryBuilder从mybatis-config.xml配置文件中构建出SqlSessionFactory。

  • SqlSessionFactory开启一个SqlSession,通过SqlSession实例获得Mapper对象并且运行Mapper映射的Sql语句。

  • 完成数据库的CRUD操作和事务提交,关闭SqlSession。

往期精彩

01 漫谈发版哪些事,好课程推荐

02 Linux的常用最危险的命令

03 精讲Spring Boot—入门+进阶+实例

04 优秀的Java程序员必须了解的GC哪些

05 互联网支付系统整体架构详解

关注我

每天进步一点点

ec8085bab5ef3cf4d5b80e68691d9af0.png

很干!再看吗?☟

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

运维工程师绩效考核表_IT运维存在问题及改进

欢迎大家一起学习交流https://t.zsxq.com/imimAYF​t.zsxq.com1.1 IT运维机制不完善,流程操作层面缺乏统一 没有建立起稳定、规范的IT运维机制。现有的IT运维流程的操作层面缺乏统一。如事件单提交之后,事件预判和优先级的设定缺少统一、规范的指导文档&…

在linux中 要删除abc目录,操作系统原理与应用(linux)A卷

福州外语外贸职业技术学院2010-2011学年第一学期(期末)试卷09 级网络系统管理专业操作系统原理与应用(linux)科目(A )卷课程代码考试形式闭卷考试时量 120 分钟姓名__ _______ _级班学号____ __1.操作系统是一种( )A.系统软件B.系统硬件C.应用软件D.支援软件2.MS—DOS的存贮管理…

数据产品经理修炼手册pdf_【尼读书】数据产品经理修炼手册(附思维导图)

前言:进入一个行业,除了要多在工作中实践和思考之外,还需要多读书。这样能够站在一个更高的角度去看问题,往往会对问题有更全面的掌握和新的认知。在【尼读书】这个栏目中,尼同学通过自己读书后的理解和整理与大家分享…

WebStorm 预览时把浏览器地址localhost 改成IP

最近在使用WebStorm时,预览网页时地址总是显示的 http://localhost:63342/... ,如果要调试其它设备感觉很不方法,此时肯定首先想到的亲爱的度娘,但是貌似没有真正很解决问题的(可能是我搜索方法不对)。最后…

linux内存管理的主要概念是虚拟内存,你知道linux内存管理基础及方法?

描述一、基本概念(1)物理内存和虚拟内存物理内存:系统硬件提供的真实物理内存虚拟内存:利用磁盘空间虚拟出的一块逻辑内存,用作虚拟内存的磁盘空间被称为swap,swap类似于windows的虚拟内存。1、linux的内存管理采取的分页存取机制…

R plot图片背景设置为透明_R语言入门第十二讲:基础绘图(二)------plot与par函数(1)...

上一次给大家简单展示了plot函数的用法,以及par函数的使用。今天我们继续应用这两个函数,看看它的其他功能。下面这个图是数据的一部分[1]。我一直认为,作图简单,但关键是要知道数据在数据库中的格式,才能更好的应用到…

visual studio 2015 搭建python开发环境,python入门到精通[三]

在上一篇博客Windows搭建python开发环境,python入门到精通[一]很多园友提到希望使用visual studio 2013/visual studio 2015 python做demo,这里略带一句,其实就"学习python"而言,比较建议使用pycharm,pychar…

如何给打印机墨盒加墨

今天打印东西突然遇到问题了,显示墨盒黑色没墨了,网上一搜,整套的墨盒大几十,随手换了一个关键词 墨盒墨水 这下不到十块钱解决,正好锻炼下自己的动手能力(其实就是穷嘛。。。) 接下来就分享下动…

全局莫兰指数_空间自相关 | 莫兰指数

空间自相关:是指一些变量在同一个分布区内的观测数据之间潜在的相互依赖性。其中,自相关中的“自”表示当你进行相关性观察统计量,是来源于不同对象的同一属性。Tobler(1970)曾指出“地理学第一定律:任何东西与别的东西之间都是相…

linux vi 排序命令,10 个你必须掌握的超酷 VI 命令技巧

摘要:大部分Linux开发者对vi命相当熟悉,可是遗憾的是,大部分开发者都只能掌握一些最常用的Linux vi命令,下面介绍的10个vi命令虽然很多不为人知,但是在实际应用中又能让你大大提高效率。在使用vi 编辑器时—无论是初次…

arduino 水位传感器_云南可信赖的威卡压力传感器哪里有

云南可信赖的威卡压力传感器哪里有 k52gh264云南可信赖的威卡压力传感器哪里有 在生产生活中,对压力表的正确使用为工业生产提供了一定程度的便利。.指针转动受阻在检修过程中,先给弹賛管式压力表施加压力,如果发现被检测表的指针成比例变快或…

小甲鱼Python笔记(下)

二十八 二十九 文件 打开文件 open(文件名[,模式][,缓冲])  注意open是个函数不是方法 模式: 缓冲: 大于1的数字代表缓冲区的大小(单位是字节),-1(或者是任何负数)代表使用默认缓冲区大小 只…

linux服务器搭建_学linux可以做什么具体的就业方向是什么

学linux可以做什么当今世界流行的操作系统有3大类,Linux、Mac OS和Windows操作系统,Linux操作系统因其开源、免费、跨平台、良好的界面等特性,深受广大程序员们的青睐!Linux操作系统被广泛的应用于企业服务器领域,目前…

linux下安装两个tomcat,linux安装两个tomcat-Go语言中文社区

解压apache-tomcat-7.0.86.tar.gz,把解压后的复制一份修改/etc/profile文件:vim /etc/profile#################我添加的start######################################first tomcat######################CATALINA_BASE/root/app/apache-tomcat-7.0.86CA…

中文域名销售平台_中国开关网.商城被搭建为南京某公司官网,这样的域名你喜欢吗?...

南京盛企电子有限公司是一个民营企业,成立于1997年6月,主要生产led广告板、薄膜开关、薄膜面板及其相类似的产品。公司拥有国内先进的制版系统、精细的丝网晒版设备、世界先进的丝网印刷机、数控恒温远红外烘道、uv固化机、模切机、激光切割机、电子产品…

linux远程虚拟桌面,2020-07-23 Linux 远程连接虚拟桌面

写在前面我的服务器为Centos7,其他 Linux 发行版可能略有差异。此方法不需要有物理显示屏。可以多用户同时登录,同一用户可以开启多个虚拟桌面。TigerVNC 安装使用这个软件提供 VNC 服务。Centos 下安装sudo yum install -y tigervnc-server用户模式开启…

2019数据安装勾选_【安装部署】esweb服务器如何单独部署

推荐指数:☆☆☆☆☆背景:在勤哲Exce服务器软件的使用过程中,有的客户并发用户数多,可将esweb服务器单独部署。具体安装步骤:首先,在一台服务器上安装除填报网站外的应用程序。双击安装包运行。点击”接受“…

html css 前端实现消息提醒数_自学的福音,web前端学习全套视频教程+最新学习思维导图都在这里...

1、产品经理。这些是负责策划应用程序的一群人。他们会想出很多新鲜的、奇怪的、甚至是不可能实现的应用。一般来说,产品经理都追求丰富的功能。2、UI设计师。这些人负责应用程序的视觉设计和交互模拟。3、项目经理。这些人负责实际地运行和维护应用程序。4、最终用…

5233杨光--Linux第一次实验

学习计时:共14小时 读书:2小时 代码:7小时 作业:2小时 博客:3小时 一、学习目标 1. 能够独立安装Linux操作系统 2. 能够熟练使用Linux系统的基本命令 3. 熟练使用Linux中用户管理命令/系统相关命令/文件目录相关命…

asp.net web开发步骤_WEB开发流程

1.需求确定2.分析与设计 (1)架构分析与设计 (2)业务逻辑分析 (3)业务逻辑设计 (4)界面设计3.开发环境搭建4.开发-测试-开发-测试5.文档编纂各个阶段过程都是有文档的,需求有需求的文档,设计有设计的文档,测试也有测试的文档.首先来看需求确定:需求…