Spring/Spring MVC
90. 为什么要使用 Spring?
●方便解耦,简化开发(低内聚高耦合)
spring是一个大工厂(容器),可以将对象的创建和依赖关系的维护,都交给spring来管理;
spring是用于生成Bean
●AOP编程的支持
spring提供面向切面编程,可以对程序进行权限拦截、运行监控等等。
●声明式事务的支持
只需要通过配置就可以对事务进行管理,无需编程
●方便程序的测试
spring支持Junit4的支持,只需要注解就可对spring程序进行测试
●方便集成各种优秀框架
spring不排斥其他框架,内部提供了对各种框架(如:Struts,Hibernate,Mybatis,quartz等)的直接支持
●降低Java EE API的使用难度
Spring对Java EE开发中一些难用的API(JDBC,JavaMail,远程调用等)提供了封装,使这些API难度大大降低。
91. 解释一下什么是 AOP?
面向切面编程:通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。。
AOP思想中分为核心业务和周边功能;
*核心业务:比如登录,增删数据,等
*周边功能:性能统计,事务管理,日志输出,缓存,安全检查等。
周边功能在AOP的思想中被称为切面,核心业务和切面功能分别独立开发,然后把二者再整合到一起,这就是AOP的思想。
AOP的目的:
AOP能够将那些与业务无关的,却为业务模块共同调用的逻辑(日志,事务处理,权限控制等)封装起来,减少了系统重复的代码,降低模块间的耦合度,有利于未来的可拓展性和可维护性。
92. 解释一下什么是 IOC?
控制反转:不是什么技术,而是一种思想,就是将原本在程序中手动创建对象的过程交给了spring来控制。
正控:若要使用某个对象,自己去创建对象;
反控:使用某个对象,只需要从spring容器中获取对象即可,不用关心对象的创建过程,这就是把创建对象的权利反转给了spring框架。
93. Spring 有哪些主要模块?
Spring AOP,Spring Dao,Spring Core,Spring ORM,Spring Context,Spring Web,Spring MVC
Spring Core:Core模块是spring框架最基础的部分,spring所有的功能都依赖该类库,它提供了IOC和依赖注入特性。核心容器的主要组件是BeanFactory,它是工厂模式的实现,并消除了对程序性单例模式的需要。BeanFactory使用IOC模式将应用程序的配置和依赖性规范和实际的应用程序代码分开。
Spring Context:构建在Core封装包基础上的Context封装包,提供了一种框架式的对象访问方式。Spring Context是一个配置文件,它向spring框架提供上下文信息。spring上下文包括企业服务,比如JNDI,EJB,电子邮件,国际化,校验和调度功能。
Spring AOP:通过配置管理特性,Spring AOP将面向切面的编程功能集成到Spring框架中,所以,