专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 ssm面试题及答案,2023年详细总结

ssm面试题及答案,2023年详细总结

更新时间:2022-12-12 15:03:49 来源:赢咖4 浏览1221次

ssm面试题及答案,最近看了不少的一线大厂的面试题,趁着马上就要到新年了,又进入到一个找就业的新阶段,今天小编就来整理一下各大厂的面试题,帮助大家新的一年面试顺利:

ssm面试题及答案

1.简述Spring中IOC容器常用的接口和具体的实现类

● BeanFactory SpringIOC容器的基本设置,是最底层的实现, 面向框架本身的.

● ApplicationContext BeanFactory的子接口, 提供了更多高级的特定. 面向开发者的.

● ConfigurableApplicationContext, ApplicationContext的子接口,扩展出了 close 和 refresh等 关闭 刷新容器的方法

● ClassPathXmlApplicationContext:从classpath的XML配置文件中读取上下文,并生成上下文定义。应用程序上下文从程序环境变量中取得。

● FileSystemXmlApplicationContext :由文件系统中的XML配置文件读取上下文。

● XmlWebApplicationContext:由Web应用的XML文件读取上下文。

2.简述Spring中如何基于注解配置Bean和装配Bean,

(1)首先要在Spring中配置开启注解扫描

(2)在具体的类上加上具体的注解

(3)Spring 中通常使用@Autowired 或者是@Resource 等注解进行bean的装配

3.说出Spring 或者 Springmvc中常用的5个注解,并解释含义

@Component 基本注解,标识一个受Spring管理的组件

@Controller 标识为一个表示层的组件

@Service 标识为一个业务层的组件

@Repository 标识为一个持久层的组件

@Autowired 自动装配

@Qualifier(“”) 具体指定要装配的组件的id值

@RequestMapping() 完成请求映射

@PathVariable 映射请求URL中占位符到请求处理方法的形参

只要说出机几个注解并解释含义即可,如上答案只做参考

4.请解释Spring Bean的生命周期?

(1)默认情况下,IOC容器中bean的生命周期分为五个阶段:

● 调用构造器 或者是通过工厂的方式创建Bean对象

● bean对象的属性注入值

● 调用初始化方法,进行初始化,初始化方法是通过init-method来指定的.

● 使用

● IOC容器关闭时, 销毁Bean对象.

(2)当加入了Bean的后置处理器后,IOC容器中bean的生命周期分为七个阶段:

● 调用构造器 或者是通过工厂的方式创建Bean对象

● 给bean对象的属性注入值

● 执行Bean后置处理器中的 postProcessBeforeInitialization

● 调用初始化方法,进行初始化,初始化方法是通过init-method来指定的.

● 执行Bean的后置处理器中 postProcessAfterInitialization

● 使用

● IOC容器关闭时, 销毁Bean对象

只需要回答出第一点即可,第二点也回答可适当 加分。

5.简单的谈一下SpringMVC的工作流程?

● 用户发送请求至前端控制器DispatcherServlet

● DispatcherServlet收到请求调用HandlerMapping处理器映射器。

● 处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。

● DispatcherServlet调用HandlerAdapter处理器适配器

● HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。

● Controller执行完成返回ModelAndView

● HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet

● DispatcherServlet将ModelAndView传给ViewReslover视图解析器

● ViewReslover解析后返回具体View

● DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。

● DispatcherServlet响应用户

6.SpringMVC中如何解决POST请求中文乱码问题

Springmvc中通过CharacterEncodingFilter解决中文乱码问题.

在web.xml中加入:

<filter>  
    <filter-name>CharacterEncodingFilter</filter-name>  
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
    <init-param>  
        <param-name>encoding</param-name>  
        <param-value>utf-8</param-value>  
    </init-param>  
</filter>  
<filter-mapping>  
    <filter-name>CharacterEncodingFilter</filter-name>  
    <url-pattern>/*</url-pattern>  
</filter-mapping>  

7.简述SpringMvc里面拦截器是如何定义,如何配置,拦截器中三个重要的方法

定义:有两种方式

● 实现HandlerInterceptor接口

● 继承HandlerInterceptorAdapter

配置:

<mvc:interceptors>  
    <!--默认是对所有请求都拦截 -->  
    <bean id="myFirstInterceptor" class="com.atguigu.interceptor.MyFirstInterceptor">  
    </bean>  
    <!-- 只针对部分请求拦截或者不拦截 -->  
    <mvc:interceptor>  
        <mvc:mapping path=" " />  <!—指定拦截-->  
        <mvc:exclude-mapping path=””/> <!—指定不拦截-->  
        <bean class=" com.atguigu.interceptor.MySecondInterceptor " /> </mvc:interceptor>  
</mvc:interceptors>  

拦截器中三个重要的方法:

● preHandle

● postHandle

● afterCompletion

8.MyBatis中 #{}和${}的区别是什么?

#{}是预编译处理,${}是字符串替换;

Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;

Mybatis在处理${}时,就是把${}替换成变量的值;

使用#{}可以有效的防止SQL注入,提高系统安全性。

9.Mybatis 结果集的映射方式有几种,并分别解释每种映射方式如何使用。

自动映射 ,通过resultType来指定要映射的类型即可。

自定义映射 通过resultMap来完成具体的映射规则,指定将结果集中的哪个列映射到对象的哪个属性。

10.简述MyBatis的单个参数、多个参数如何传递及如何取值。

MyBatis传递单个参数,如果是普通类型(String+8个基本)的,取值时在#{}中可以任意指定,如果是对象类型的,则在#{}中使用对象的属性名来取值

MyBatis传递多个参数,默认情况下,MyBatis会对多个参数进行封装Map,取值时在#{}可以使用0 1 2 .. 或者是param1 param2..

MyBatis传递多个参数,建议使用命名参数,在Mapper接口的方法的形参前面使用

@Param() 来指定封装Map时用的key. 取值时在#{}中使用@Param指定的key

以上就是“ssm面试题及答案,2023年详细总结”,你能回答上来吗?如果想要了解更多的Java面试题相关内容,可以关注赢咖4Java官网。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>