你对spring的理解?
答:
- 开源框架
- IOC(控制反转),将类的创建和依赖关系写配置文件里,由配置文件注入,实现了松耦合。传统的创建对象的方法是直接通过 new 关键字,而 spring 则是通过 IOC 容器来创建对象,也就是说我们将创建对象的控制权交给了 IOC 容器。IOC 让程序员不再关注怎么去创建对象,而是关注与对象创建之后的操作,把对象的创建、初始化、销毁等工作交给spring容器来做。
(软件设计中的“耦合”指,两个功能函数之间的依赖程度。比如,你设计的一个程序,需要你编写10个功能函数来实现。如果这10个功能中,有9个功能都要调取第10个功能函数X10,那么,当你在修改X10时,你就要考虑修改完成后,是否会对其它9个功能函数有影响,为了查看是否有不好影响,你就要对其它9个功能函数,一个一个进行测试。所以,为了避免产生这种后期修改的劳动量。就提倡【松耦合】,就是,功能函数之间,尽量依赖程度不要太高。否则,修改完一个底层函数后,会对多个上层函数,进行大量的测试。)
- 依赖注入(DI机制)(依赖注入(Dependecy Injection)和控制反转(Inversion of Control)是同一个概念,具体的讲:当某个角色需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在spring中创建被调用者的工作不再由调用者来完成,因此称为控制反转。创建被调用者的工作由spring来完成,然后注入调用者)
- AOP(Aspect-Oriented Programming面向层面的编程)将安全、事务等,于逻辑相对独立的功能抽取出来,利用spring的配置文件将这些功能插进去,实现了按照切面编程,提高了复用性。Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开
- 概念:spring是一个轻型容器,其核心是Bean Factory,用以构造我们所需要的Model。在此基础上,Spring提供了AOP的实现,用它来提供非管理环境下申明方式的事务、安全等服务;对bean工厂的扩展ApplicationContext更加方便我们实现J2EE的应用;DAO/ORM的实现方便我们进行数据库的开发;Web MVC和Spring Web应用的框架或与其他流行的Web框架进行集成。
spring主要由以下几个模块组成:
- Spring Core:核心类库,提供IOC控制反转服务;也称核心容器:核心容器提供 Spring 框架的基本功能(Spring Core)。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转(IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
- Spring Context:提供框架式的Bean访问方式,以及企业级功能;
- Spring AOP;AOP面向切面编程;
- Spring DAO:对JDBC的抽象,JDBCDAO抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。
- Spring ORM:对现有的ORM框架的支持;
- Spring Web:提供了基本的面向Web的综合特性,例如多方文件上传;
- SpringMVC:提供面向Web应用的Model-View-Controller实现;