关于Spring框架的三种思想提出
1.IoC思想==>Inversion of Controller,控制反转,强调的是原来在程序中创建Bean的权利反转给第三方。
谁去充当第三方角色呢?
工厂设计模式,BeanFactory来充当第三方的角色,来产生Bean实例
BeanFactory怎么知道产生哪些Bean实例呢?
可以使用配置文件配置Bean的基本信息,BeanFactory根据配置文件来生产Bean实例
2.DI思想==>Dependency Injection,依赖注入,强调的Bean之间关系,这种关系第三方负责去设置。
3.AOP思想==>Aspect Oriented Programming,面向切面编程,功能的横向抽取,主要的实现方式就是Proxy.
-框架的基本特点
1 | .框架(Framework),是基于基础技术之上,从众多业务中抽取出的通用解决方案 |
1 | .框架是一个半成品,使用框架规定的语法开发可以提高开发效率,可以用简单的代码就能完成复杂的基础业务; |
1 | .框架内部使用大量的设计模式、算法、底层代码操作技术,如反射、内省、xml解析、注解解析等; |
1 | .框架一般都具备扩展性; |
1 | .有了框架,我们可以将精力尽可能的投入在纯业务开发上而不用去费心技术实现以及一些辅助业务。 |
-Java中常用的框架:
1 | -不同语言,不同领域都有属于自己的框架,使用框架开发是作为程序员的最基础的底线。Java语言中的框架,可以分为基础框架和服务框架: |
1 | --基础框架:完成基本业务操作的框架,如MyBatis、Spring、SpringMVC、Struts2、Hibernate等 |
-DI依赖注入的思想
将UserDao在BeanFactory内部设置给UserService的过程叫做“注入”,而UserService需要依赖UserDao的注入才能正常工作,这个过程叫做“依赖注入
面试题:IoC 和 DI 的关系?
首先,先回答IoC和DI的是什么:
IoC: Inversion of Control,控制反转,将Bean的创建权由原来程序反转给第三方
DI:Dependency Injection,依赖注入,某个Bean的完整创建依赖于其他Bean(或普通参数)的注入
其次,在回答IoC和DI的关系:
第一种观点:IoC强调的是Bean创建权的反转,而DI强调的是Bean的依赖关系,认为不是一回事
第二种观点:IoC强调的是Bean创建权的反转,而DI强调的是通过注入的方式反转Bean的创建权,认为DI
是IoC的其中一种实现方式
- AOP 面向切面思想的提出
AOP,Aspect Oriented Programming,面向切面编程,是对面向对象编程OOP的升华。OOP是纵向对一个
事物的抽象,一个对象包括静态的属性信息,包括动态的方法信息等。而AOP是横向的对不同事物的抽象,属
性与属性、方法与方法、对象与对象都可以组成一个切面,而用这种思维去设计编程的方式叫做面向切面编程