一、为什么要学习Spring?(Spring有什么优点?)
1. Spring是什么?
Spring是一个框架,用于简化java企业级应用开发的开源引用程序框架
2. 为什么要使用spring框架进行开发?(Spring的特点是什么?)
简化开发:降低企业级开发复杂性
框架整合:高效整合其他技术,提高企业级应用开发与运行效率
3. Spring框架的核心?
IoC:(Inversion Of Control)控制反转,利用框架创建对象的技术,就是把我们创建对象,初始化,管理销毁对象的权限交给外部,这里的外部就是Spring容器
AOP:()面向切面编程,通过切面类和方法为核心业务提供非核心业务技术
4. Spring提供的技术支持?
提供了表现层框架:SpringMVC
提供了持久层框架:SpringJDBC
提供了整合其他三方框架和类库的基础,(Spring框架本身使用Maven框架管理项目)
5. Spring框架的本质就是:
管理项目中的对象(即创建对象和维护对象与对象之间的关系)
6. Spring的优势?
方便解耦,简化开发,
通过spring提供的ioc容器,可以将对象与对象之间的依赖交给spring来进行控制,避免硬编码的所造成的过度程序耦合,用户也不必再为较为底层的需求编写代码,可以更加专注于上层的应用
AOP编程的支持
通过SpringAOp功能,方便进行面向切面的编程,许多不容易用传统OOP(Object Oriented Peogramming)实现的功能可以通过AOP轻松应对
声明式事务支持
可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务管理,提高开发效率和质量
方便程序的测试
可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再昂贵操作,而是触手可做的事情
方便继承各种优秀框架
Spring可以降低各种框架的使用难度,提供了对各种优秀框架的直接支持
降低javaEE API的使用难度
Spring对javaEE API(如:JDBC JavaMall,远程调用等)进行了薄薄的封装层,是这些APi的使用难度大为降低
二、Spring框架的IoC容器
1. ioc是什么?
控制反转:把创建对象的权力交给框架,即将对象的创建,初始化,存储,管理交给spring容器
IOC:控制反转(Inversion Of Control)使用对象时,由主动new产生对象,转换为由外部提供对象,此过程中对象创建控制权由程序转义到外部,此思想称为控制反转
IOC容器:spring提供的一个容器,称为IOC容器,用来充当IOC思想中的外部
2. ioc容器的实质是什么?
一种通过描述来生成或者获取对象的技术
3. SpringBean是什么?
在Spring中把每一个需要管理的对象称之为:SpringBean
Bean:IOC容器负责对象的创建,初始化等一系列工作,被创建或被管理的对象在IOC容器中称为Bean
4. 什么是Spring容器:在spring中管理这个Bean的容器
5. 管理过程:
第一步:将需要的POJO提前在配置文件中进行描述
第二步:Spring会根据配置文件中的描述生成IOC容器并装配Bean(Spring框架负责)
第三步:需要该Bena的对象时,通过API获取即可(程序员负责)
三、耦合与解耦
1. 什么是耦合?
在项目开发中,经常会遇到在一个程序中会new另一个类的对象,而在new对象时,会造成当前这个程序,严重的依赖于其他对象,会造成程序之间的依赖程度提升,而程序和程序之间的依赖关系称之为耦合,依赖关系越高,偶偶和性越高
2. 什么是解耦?
接触对象与对象之间的依赖关系
3. 常见的解耦方式?
1) 分层开发解耦方式
开发思想:将程序个组成部分定位于不同的层次,达到解耦合的目的
常见开发模式:工厂开发模式
2) 使用框架解耦方式
开发思想:IoC和分层开发