面试总结3 介绍spring

261 阅读2分钟

Spring是一个轻量级的IOC和AOP容器框架:

             a,轻量级:程序实现不是很复杂,代码不是很多,占用资源不是很多,没有侵入性;



             b,IOC(Inversion of Control 控制反转):对象创建责任的反转(重点,核心);



             c, Aop(Aspect Oriented Programming):面向横切面编程,可以进行功能性扩展



             d,容器:可以容纳对象,并且可以控制对象的生命周期;

Sping框架的优缺点:

优点:

  • 轻量级的容器框架,没有侵入性

  • IoC更加容易组合对象之间的关系,通过面向接口进行编程,可以低耦合开发。

  • 易于本地测试(Junit单元测试,不用部署服务器)

  • AOP可以更加容易的进行功能扩展,遵循OCP开发原则。

  • Spring默认对象的创建为单例的,我们不需要再使用单例的设计模式来开发单体类。

  • Spring的集成很强大,另外可以对其他框架的配置进行一元化管理。

  • Spring的声明式事务的方便使用。

缺点:

  • 开发对设计要求较高,集成测试麻烦,对框架有一定的依赖性。

IOC原理

  • 是一种面向对象设计模式的思想,将创建对象的过程由IOC容器管理
  • 构造器注入
  • setter方法注入

AOP原理

  • AOP的源码中用到了两种动态代理来实现拦截切入功能:jdk动态代理和cglib动态代理。
  • jdk动态代理是由java内部的反射机制来实现的,cglib动态代理底层则是借助asm来实现的
  • CGLIB 代理:静态代理和动态代理模式都是要求目标实现一个接口的目标对象,但是有时候目标对象只是一个单独的对象,并没有实现任何接,这个时候就可以使用以目标对象子类的方式实现代理,这种方法叫做 cglib 代理。