码迷,mamicode.com
首页 > 编程语言 > 详细

Spring 侵入式和非侵入式

时间:2017-05-21 16:58:25      阅读:2098      评论:0      收藏:0      [点我收藏+]

标签:不能   技术   接口   动态   优缺点   用户   str   color   选择   

1.非侵入式的技术体现 允许在应用系统中自由选择和组装Spring框架的各个功能模块,并且不强制要求应用系统的类必须从Spring框架的系统API的某个类来继承或者实现某个接口。

2.如何实现非侵入式的设计目标的

  1)应用反射机制,通过动态调用的方式来提供各方面的功能,建立核心组间BeanFactory

  2)配合使用Spring框架中的BeanWrapper和BeanFactory组件类最终达到对象的实例创建和属性注入

  3)优点:允许所开发出来的应用系统能够在不用的环境中自由移植,不需要修改应用系统中的核心功能实现的代码

    简单说一下我的理解吧。假设大家都想要把用户代码塞到一个框架里。侵入式的做法就是要求用户代码“知道”框架的代码,表现为用户代码需要继承框架提供的类。非侵入式则不需要用户代码引入框架代码的信息,从类的编写者角度来看,察觉不到框架的存在。 例如: 使用struts的时候,我需要继承一些struts的类,这时struts侵入到了我的代码里。 使用spring,编写一些业务类的时候不需要继承spring特定的类,通过配置完成依赖注入后就可以使用,此时,spring就没有侵入到我业务类的代码里 侵入式让用户代码产生对框架的依赖,这些代码不能在框架外使用,不利于代码的复用。但侵入式可以使用户跟框架更好的结合,更容易更充分的利用框架提供的功能。 非侵入式的代码则没有过多的依赖,可以很方便的迁移到其他地方。但是与用户代码互动的方式可能就比较复杂。 这两种方式都有各自的优缺点吧,主要看实际开发时怎么权衡了。

    简单来说,非侵入式就是不继承框架提供的类,而是通过配置完成依赖注入后,就可以使用!

 

Spring 侵入式和非侵入式

标签:不能   技术   接口   动态   优缺点   用户   str   color   选择   

原文地址:http://www.cnblogs.com/1020182600HENG/p/6885178.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!