1. 谈谈你对spring的理解
Spring是一个开源的轻量级的IoC和AOP容器框架,它为Java 应用程序提供了全面的基础设施,其目的是简化企业应用程序的开发,它使得开发者只需要关心业务需求,从而提高开发效率和系统的可维护性。
2.spring的配置方式
spring常见的配置方式:基于XML的配置、基于注解的配置、基于Java的配置。
3.请列举一下spring中有那些重要的模块
Spring Core:核心类库,其spring所有功能都依赖于该类库,提供IOC服务;
Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);
Spring AOP:AOP服务,提供面向方面的编程实现;
Spring DAO:对JDBC的抽象,简化了数据访问异常的处理;
Spring ORM:对现有的ORM框架的支持,例如:对Hibernate的支持;
Spring Web:为创建Web应用程序提供综合性支持,例如多方文件上传;
Spring MVC:提供面向Web应用的Model-View-Controller(即:模型-视图-控制器)实现;
Spring Test:提供了对JUnit和TestNG测试的支持;
Spring Aspects:该模块为与AspectJ的集成提供支持。
4.spring有那些优点
(1)spring采用低侵入式设计,大大降低了代码污染;
(2)spring通过DI机制将对象之间的依赖关系交由框架处理,减低组件的耦合性;
(3)Spring AOP技术,将一些通用任务,如安全、事务、日志、权限等进行集中式管理,从而提供更好的复用。
(4)spring对于主流的应用框架提供了很好集成支持。
5.谈谈你对 Spring IoC 和 AOP的理解
IoC 控制反转,是指创建对象的控制权的转移,以前创建对象的主动权和时机是由自己把控的,而现在这种权力转移到Spring容器中,并由容器根据配置文件去创建实例和管理各个实例之间的依赖关系,对象与对象之间松散耦合,也利于功能的复用。DI依赖注入,和控制反转是同一个概念的不同角度的描述,即 应用程序在运行时依赖IoC容器来动态注入对象需要的外部资源。
AOP面向切面编程,可以说它是对面向对象编程(注:面向对象简称(OOP): 允许开发者定义纵向的关系,但并适用于定义横向的关系,导致了大量代码的重复,而不利于各个模块的重用)的一种补充用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。可用于权限认证、日志、事务处理。
6.Spring IoC 的注入方式
注入方式