Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。
Spring 作为一个解决企业复杂度的框架,在Java开发中享有圣喻,号称所有java开发均可使用此框架,对于其他框架(如,Struts,Hibernate,Mybits等)都很好的支持。Spring作为项目的核心中间件而存在。
Spring最核心的两种技术:
–控制反转
–面向切面编程
一 。控制反转(IOC)
(百度百科)控制反转(Inversion of Control,英文缩写为IoC)是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架的核心。 控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。依赖注入应用比较广泛。
如何理解?
控制反转,就是把控制权交出去,比如,我写了一个程序,实现
人(不是对象而接口,或着基类) 吃早饭–>工作–>吃午饭–>工作睡觉
写程序时我不指明是某个人在做这些事,在使用这个类时传入相应的对象,这就是一种通过注入对象实现控制反转的方式。
描述一天做的事情。 通过setter实现控制反转(或者说之依赖注入)
package ioctest;
public class PeopleOneDay {
public PeopleInstance people; //不去实例化通过setter传入实例实现控制反转
/**
* 接收实例实现控制反转
* @param people
*/
public void setPeople(PeopleInstance people) {
this.people = people;
}
/**
* 描述一天干的事情
*/
public void doSthOneDay(){
();
();
();
();
();
}
}
二。面向切面编程AOP
(百度百科:)在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
如何理解?
面向过程编程,面向对象编程,面向切面编程区别