颍上人才网
颍上职场资讯
颍上面试技巧
正文:Spring面试题大揭秘:其在ssm中的作用、事务及IOC详解
Spring面试题大揭秘:其在ssm中的作用、事务及IOC详解
来源:网络整理2025-06-06

一、Spring面试题

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

Spring:轻量级框架

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

两大核心:

IOC/DI(控制反转/依赖注入)机制中,DAO层被注入到Service层,而Service层再将依赖传递给Action层,整个Spring框架的顶层容器由BeanFactory来管理。

②. 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面试题

SpringMvc中的控制器是否采用单例模式,若为单例,又可能存在哪些弊端,以及如何进行有效应对?

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

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

2、SpringMvc 中控制器的注解?

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

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

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

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

在方法内部明确指定该对象的创建,SpringMvc将自动将相关属性注入至该对象之中。

5、SpringMvc中函数的返回值?

字符串、模型视图、列表、集合等。

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

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

转发:return:“hello”

重定向操作:返回“请访问hello.jsp页面”的跳转指令。

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

运用JackSon框架,将Java中的对象直接转化为JavaScript能够识别的JSON格式对象,具体操作步骤包括:

加入JackSon.jar

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

在调用Ajax方法时,若需直接输出Object、list等数据类型,应在方法定义前附加注解@ResponseBody。

8、SpringMvc的工作流程图?

SpringMvc面试题_单例模式线程安全_Jackson框架_mybatis面试问题_Spring面试题_IOC控制反转_AOP面向切面编程

9、Struts2 和 SpringMvc的区别?

入口不同:

Struts2:filter过滤器

SpringMvc:一个Servlet即前端控制器

开发方式不同:

Struts2系统采用类作为开发基础,参数传递依赖于类的属性,且该系统仅支持多例模式设置。

SpringMvc框架采用方法驱动模式,每个URL对应一个具体的方法;在方法中接收请求参数,这些参数可通过形参接收;同时,该框架支持单例模式或多例模式,其中推荐使用单例模式。

请求方式不同:

Struts2框架中,对于村塾请求与响应过程中的数据,主要依赖于OGNL(Object-Graph Navigation Language)进行数据的存取操作。

SpringMvc通过参数解析器对请求内容进行解析,并为方法形参分配值。接着,它将数据与视图封装成ModelAndView对象。最终,ModelAndView中的模型数据被传输到页面。值得注意的是,jsp视图解析器默认采用的是jstl。

三、Mybatis面试题

1、Ibatis和Mybatis?

2010年,Apache的Ibatis框架终止了更新,并将维护权转交给了Google团队,同时改名为MyBatis。自此,Ibatis自2010年起便未再进行更新,逐渐沦为一个被遗弃的框架。一个无人照料的框架注定会被MyBatis所淘汰。

Mybatis:Ibatis的升级版本。

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

Mybatis将DAO接口与XML映射文件进行关联,从而自动生成了接口的具体实现,使得使用过程变得更加简便快捷。

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

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

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语句中将#{}替换为问号?,从而完成预编译语句的补全。这样的做法能够有效防止SQL注入攻击,因为这种取值方式是在SQL语句编译完成后进行值填充的。

总结:一般用#{}来进行列的代替

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

select last _insert_id()

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

RowBounds对象分页

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

12、Mybatis工作原理?

构建过程涉及使用SqlSessionFactoryBuilder,该工具从mybatis-config.xml配置文件中生成SqlSessionFactory。

SqlSessionFactory启动一个SqlSession,借助SqlSession实例获取Mapper实体,进而执行Mapper所映射的SQL语句。

执行完对数据库的增删改查操作以及事务的提交,随后关闭SqlSession连接。

最终,我本人是一位拥有多年Java开发经验的资深程序员,现已离职,目前正专注于开设个人的Java定制课程。在今年年初,我投入了一个月的时间,精心整理了一套针对2019年学习最为实用的Java学习资料。这份资料现在可以赠送给所有热爱Java的朋友们,有兴趣的朋友只需关注我的头条账号,然后在后台发送私信“01”,便可免费获得。

温馨提示:本内容地址http://m.ysjob.cc/article/articledetail-338511.html转载请注明,以上Spring面试题大揭秘:其在ssm中的作用、事务及IOC详解资讯信息来自颍上人才网(颍上地区最大的颍上人才网颍上人才网

 
 ©2003-2018 颍上人才网  
客服电话:  QQ: