SSM相关面试题(包括Spring,SpringMVC,Mybaits在内的50道面试题)
部分内容: 什么是IOC? IOC,Inversion of Control,控制反转,指将对象的控制权转移给Spring框架,由 Spring 来负责控制对象的生命周期(比如创建、销毁)和对象间的依赖关系。 最直观的表达就是,以前创建对象的时机和主动权都是由自己把控的,如果在一个对象中使用另外的对象,就必须主动通过new指令去创建依赖对象,使用完后还需要销毁(比如Connection等),对象始终会和其他接口或类耦合起来。而 IOC 则是由专门的容器来帮忙创建对象,将所有的类都在 Spring 容器中登记,当需要某个对象时,不再需要自己主动去 new 了,只需告诉 Spring 容器,然后 Spring 就会在系统运行到适当的时机,把你想要的对象主动给你。也就是说,对于某个具体的对象而言,以前是由自己控制它所引用对象的生命周期,而在IOC中,所有的对象都被 Spring 控制,控制对象生命周期的不再是引用它的对象,而是Spring容器,由 Spring 容器帮我们创建、查找及注入依赖对象,而引用对象只是被动的接受依赖对象,所以这叫控制反转。 SSM相关面试题主要涉及Spring框架的核心概念,如IoC(控制反转)和AOP(面向切面编程)。Spring是一个轻量级的Java应用程序框架,它简化了企业级应用的开发,通过提供IOC和AOP服务,降低组件间的耦合度,支持通用任务的集中管理,以及对主流框架的集成。 1. Spring框架: - Spring是一个包含多个模块的框架,如Spring Context、Spring Core、Spring AOP、Spring Web、Spring MVC、Spring DAO和Spring ORM。 - Spring的核心优势包括低侵入式设计、依赖注入(DI)、AOP支持以及对其他框架的集成。 2. Spring的IoC(控制反转)理解: - IoC意味着对象的控制权从应用程序转移到Spring框架,由Spring负责创建、管理对象及其依赖关系。 - 这种反转体现在,开发者不再需要手动创建和管理对象,而是声明性地定义对象及其依赖,Spring容器负责实例化和装配这些对象。 - IoC的实现通常通过配置文件或注解,使得对象之间的依赖关系在运行时动态决定。 3. Spring的AOP(面向切面编程)理解: - AOP是面向对象编程的补充,用于处理横切关注点,如日志、事务和安全,以减少代码重复,提高模块化。 - AOP通过代理模式实现,可以分为静态代理(如AspectJ)和动态代理(如Spring AOP)。 - 静态代理在编译时完成切面的织入,而动态代理则在运行时动态生成代理对象。 4. 代理: - 代理模式允许在不修改原始对象的情况下,通过代理对象控制对目标对象的访问,增强目标对象的功能。 - 静态代理需要为每个目标对象创建对应的代理类,而动态代理则可以在运行时动态生成代理对象,无需预先编写代理类。 5. Spring AOP中的动态代理模式: - Spring AOP可以使用JDK动态代理或CGLIB动态代理。 - JDK动态代理基于接口,适用于目标对象实现了接口的情况。 - CGLIB动态代理则是通过继承目标类来创建代理对象,适用于没有接口或不希望为目标类添加接口的情况。 6. 依赖注入(DI): - DI是IoC的一部分,允许在运行时将依赖对象注入到需要它们的对象中,而不是由对象自行创建。 - Spring通过构造函数注入、setter注入或field注入等方式实现DI。 Spring框架通过IoC和AOP实现了对对象创建、管理以及横切关注点处理的高级抽象,提高了代码的可测试性和可维护性,降低了模块间的耦合度,从而成为企业级Java应用开发的首选框架之一。理解和熟练掌握Spring的这些核心概念,对于在面试和实际工作中解决复杂问题具有重要意义。
剩余19页未读,继续阅读
- 粉丝: 323
- 资源: 33
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助