01 Spring概述

来源:互联网 发布:房琪 巴基斯坦 知乎 编辑:程序博客网 时间:2024/05/16 06:48

是什么

Spring是一个开源框架,其核心是IOC容器和AOP面向切面编程思想。


优点

非侵入式
基于Spring开发的应用中的对象可以不依赖于Spring的API 。
依赖注入
DI,Dependency Injection,反转控制(IOC)最经典的实现。
面向切面编程
AOP,Aspect Oriented Programming。
容器
Spring是一个容器,因为它包含并且管理应用对象的生命周期 。
组件化
Spring实现了使用简单的组件配置组合成一个复杂的应用。在Spring中可以使用XML和Java注解组合这些对象。
一站式
在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库,实际上Spring自身也提供了表述层的SpringMVC和持久层的SpringJDBC。


开发过程中的层次结构

Dao层
Dao层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,Dao层的设计首先是设计Dao的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,Dao层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。
Service层
Service层主要负责业务模块的逻辑应用设计。同样是首先设计接口,再设计其实现的类,接着在Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。Service层的业务实现,具体要调用到已定义的Dao层的接口,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。
Controller层
Controller层负责具体的业务模块流程的控制,在此层里面要调用Service层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。
View层
View层与控制层结合比较紧密,需要二者结合起来协同工作。View层主要负责网页前台的Jsp页面的表示。


主要内容

图示
Spring主要内容
从下向上看spring的主要内容
Test:Spring支持Junit单元测试 。
核心容器(IOC):Bean(Bean工厂,创建对象)、Core(一切的基础)、Context(上下文)、SpEL(Spring的表达式语言)。
面向切面(AOP):AOP、Aspects。
对数据访问的支持:JDBC、ORM、Transaction、JMS(java邮件服务)。
对web的支持:SpringMVC。


IOC和DI

IOC(Inversion Of Control)
反转控制,传统方式是组件主动从容器获取资源,反转控制改由容器主动将资源推送给组建,实际上推送的是代理对象。
DI(Depending Injection)
依赖注入,组件之间的关系是在运行期确定的,IOC和DI是同一概念的不同角度,IOC是通过DI实现的。


AOP

AOP(Aspect Oriented Programming)
面向切面编程时传统OOP的补充。
AOP操作的主要对象是切面。
常用术语
横切关注点:加在主线业务前后的内容,根据OOP原则封装为方法。
通知(advice):被方法化的横切关注点。以怎样的方式处理。How。
连接点(joinpoint):主线业务方法,一个业务方法就是一个连接点。
切入点(pointcut):要对哪些方法进行拦截,对要拦截的连接点的定义说明。Where。
切面(aspect):将切入点和通知方法封装起来。


参考资料

谈谈对Spring IOC的理解
Spring的IOC原理[通俗解释一下]

0 0