16.spring与springmvc常见面试题.docx
"spring与springmvc常见面试题" Spring 是一个流行的 Java Web 应用框架,提供了 IOC、AOP 等功能,帮助开发者快速构建 Web 应用程序。下面是 Spring 和 SpringMVC 中的一些常见面试题和答案: 1. Spring 中 AOP 的应用场景、Aop 原理、好处? 答:AOP--Aspect Oriented Programming 面向切面编程;用来封装横切关注点,具体可以在下面的场景中使用:Authentication 权限、Caching 缓存、Context passing 内容传递、Error handling 错误处理、Lazy loading 懒加载、Debugging 调试、logging, tracing, profiling and monitoring 记录跟踪优化、Performance optimization 性能优化、Persistence 持久化、Resource pooling 资源池、Synchronization 同步、Transactions 事务。原理:AOP 是面向切面编程,是通过动态代理的方式为程序添加统一功能,集中解决一些公共问题。好处:1.各个步骤之间的良好隔离性耦合性大大降低、2.源代码无关性,再扩展功能的同时不对源码进行修改操作。 2. Spring 中 IOC 的作用与原理? 答:IOC--Inversion of Control 控制反转。当某个角色需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例对象。但在 Spring 中创建被调用者的工作不再由调用者来完成,因此称为控制反转。创建被调用者的工作由 Spring 来完成,然后注入调用者直接使用。单例模式+工厂模式+反射创建。 3. Spring 框架 IOC 与 AOP 合二为一 答:Spring 框架是一个一站式(full-stack 全栈式)框架,提供了从表现层-springMVC 到业务层-spring 再到持久层-springdata 的一套完整的解决方案。我们在项目中可以只使用 Spring 一个框架,它就可以提供表现层的 MVC 框架,持久层的 Dao 框架。它的两大核心 IoC 和 AOP 更是为我们程序解耦和代码简洁易维护提供了支持。 4. Spring 常见创建对象的注解 答:@Component @Controller @Service @Repository 5. Spring 中用到的设计模式 答:简单工厂、工厂方法、单例模式、适配器、包装器、代理、观察者、策略、模板方法 6. Spring 的优点 答:1.降低了组件之间的耦合性,实现了软件各层之间的解耦;2.可以使用容易提供的众多服务,如事务管理,消息服务等;3.容器提供单例模式支持;4.容器提供了 AOP 技术,利用它很容易实现如权限拦截,运行期监控等功能;5.容器提供了众多的辅助类,能加快应用的开发;6.spring 对于主流的应用框架提供了集成支持,如 hibernate,JPA,Struts 等;7.spring 属于低侵入式设计,代码的污染极低;8.独立于各种应用服务器;9.spring 的 DI 机制降低了业务对象替换的复杂性;10.Spring 的高度开放性,并不强制应用完全依赖于 Spring,开发者可以自由选择 spring 的部分或全部。 7. Spring Bean 的作用域之间有什么区别? 答:Spring 容器中的 bean 可以分为 5 个范围:singleton、prototype、request、session、global-session、application。singleton:这种 bean 范围是默认的,这种范围确保不管接受到多少个请求,每个容器中只有一个 bean 的实例,单例的模式由 bean factory 自身来维护。prototype:原形范围与单例范围相反,为每一个 bean 请求提供一个实例。request:在请求 bean 范围内会每一个来自客户端的网络请求创建一个实例,在请求完成以后,bean 会失效并被垃圾回收器回收。Session:与请求范围类似,确保每个 session 中有一个 bean 的实例,在 session 过期后,bean 会随之失效。global-session:global-session 和 Portlet 应用相关。当你的应用部署在 Portlet 容器中工作时,它包含很多 portlet。如果你想要声明让所有的 portlet 共用全局的存储变量的话,那么这全局变量需要存储在 global-session 中。application:与 servlet 应用相关全局作用域与 Servlet 中的 session 作用域效果相同。 8. Spring 管理事务有几种方式? 答:有两种方式:1、编程式事务,在代码中硬编码。(不推荐使用)2、声明式事务,在配置文件中配置(推荐使用)声明式事务又分为两种:基于注解的声明式事务和基于 XML 的声明式事务。
剩余8页未读,继续阅读
- 粉丝: 1724
- 资源: 115
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 适用于 Raspberry Pi 的 Adafruit 库代码.zip
- 章节2:编程基本概念之python程序的构成
- 适用于 Python 的 LINE 消息 API SDK.zip
- 宝塔面板安装及关键网络安全设置指南
- 适用于 Python 的 AWS 开发工具包.zip
- 适用于 Python 3 的 Django LDAP 用户身份验证后端 .zip
- 基于PBL-CDIO的材料成型及控制工程课程设计实践与改革
- JQuerymobilea4中文手册CHM版最新版本
- 适用于 Python 2 和 3 以及 PyPy (ws4py 0.5.1) 的 WebSocket 客户端和服务器库.zip
- 适用于 AWS 的 Python 无服务器微框架.zip