1.spring是什么?特点是什么?优势是什么?
答:Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。而在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成。所以开发一个应用除了要开发业务逻辑之外,最多的是关注如何使这些对象协作来完成所需功能,而且要低耦合、高内聚。业务逻辑开发是不可避免的,那如果有个框架出来帮我们来创建对象及管理这些对象之间的依赖关系。可能有人说了,比如“抽象工厂、工厂方法设计模式”不也可以帮我们创建对象,“生成器模式”帮我们处理对象间的依赖关系,不也能完成这些功能吗?可是这些又需要我们创建另一些工厂类、生成器类,我们又要而外管理这些类,增加了我们的负担,如果能有种通过配置方式来创建对象,管理对象之间依赖关系,我们不需要通过工厂和生成器来创建及管理对象之间的依赖关系,这样我们是不是减少了许多工作,加速了开发,能节省出很多时间来干其他事。Spring框架刚出来时主要就是来完成这个功能。
特点:
1--降低了组件之间的耦合性, 实现了软件各个层之间的解耦
2--可以使用spring容器提供的服务, 如: 事务管理, 消息服务
3--容器提供单例模式支持
4--容器提供AOP技术, 利用它很容易实现权限拦截, 运行期监控
5--容器提供了众多的辅助类, 能加快应用的开发(org.springframework.jdbc.core.JDBCTemplate 等)
6--spring对主流的应用框架提供了集成支持, 例如: hibernate,JPA, Struts, Mybatis(IBatis)
7--Spring属于低侵入式设计, 代码污染度极低
8--独立于各种应用服务器
9--spring的DI机制降低了业务对象替换的复杂性
10--spring的高度开发性, 并不强制应用完全依赖于spring, 开发者可以自由选择spring的部分或者全部
优势:轻量级的IOC容器
一致的事物管理
面向切面编程(AOP)
2.spring的核心是什么?ioc什么含义?DI与ioc的区别?
答:Spring 核心包括以下三个方面:
控制反转(Ioc)
依赖注入(DI)
面向切面编程(AOP)
控制反转(IoC)
控制反转