【框架】初入Spring

一:简介

Spring是一个轻量级的企业级开发的一站式解决方案。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。每一个被Spring管理的对象都被称为Bean。Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架。

二:两大核心

1:IOC(控制反转)和DI(依赖注入):在一般的编写代码过程中,对象都是我们自己创建的,也是我们自己维护的。但是IOC容器有依赖注入功能,由它创建好的对象则将交给Spring来控制。此时控制权就不在我们手里了,这就叫控制权反转。。同时核心控制器是Spring框架最基础的部分,它提供了依赖注入(DependencyInjection)特征来实现容器对Bean的管理,而依赖注入不能单独存在,需要在IOC的基础之上完成。这里最基本的概念是BeanFactory,它是任何Spring应用的核心。BeanFactory是工厂模式的一个实现,是IOC容器的实际代表者,它使用IoC将应用配置和依赖说明从实际的应用代码中分离出来。

四种依赖注入方法:

  • set注入方式
  • 静态工厂注入方式
  • 构造方法注入方式
  • 基于注解的方式

2:AOP(面向切面编程):比如两段程序,我们需要对它们做几乎相同的操作,当然最笨的方法就是两个的代码都改变,但这样费时费力。所以把两个程序并在一起,想象用刀在同一位置切开,再往其中添加相同的代码。如日志管理、异常处理等事务都能使用AOP的方式解决。

把众多方法中的所有共有代码全部抽取出来,放置到某个地方集中管理,然后在具体运行时,再由容器动态织入这些共有代码的话,最起码可以解决两个问题:

  1. Java EE程序员在编写具体的业务逻辑处理方法时,只需关心核心的业务逻辑处理,既提高了工作效率,又使代码变更简洁优雅。

  2. 在日后的维护中由于业务逻辑代码与共有代码分开存放,而且共有代码是集中存放的,因此使维护工作变得简单轻松。

实现过程:业务逻辑组件在运行过程中,AOP容器会动态创建一个代理对象供使用者调用,该代理对象已经按Java EE程序员的意图将切面成功切入到目标方法的连接点上,从而使切面的功能与业务逻辑的功能同时得以执行。从原理上讲,调用者直接调用的其实是AOP容器动态生成的代理对象,再由代理对象调用目标对象完成原始的业务逻辑处理,而代理对象则已经将切面与业务逻辑方法进行了合成。

三:优点

1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 
2.可以使用容易提供的众多服务,如事务管理,消息服务等 
3.容器提供单例模式支持 
4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能 
5.容器提供了众多的辅助类,能加快应用的开发 
6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等 
7.spring属于低侵入式设计,代码的污染极低 
8.独立于各种应用服务器 
9.spring的DI机制降低了业务对象替换的复杂性 
10.Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可以自由选择spring的部分或全部

猜你喜欢

转载自www.cnblogs.com/BlakeHair/p/10476363.html