摘自《Spring框架技术》

Spring框架是一种非侵入式的轻量级框架

1.非侵入式的技术体现

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

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

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

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

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

下为转载:

简单说一下我的理解吧。假设大家都想要把用户代码塞到一个框架里。侵入式的做法就是要求用户代码“知道”框架的代码,表现为用户代码需要继承框架提供的类。非侵入式则不需要用户代码引入框架代码的信息,从类的编写者角度来看,察觉不到框架的存在。

例如:

使用struts的时候,我需要继承一些struts的类,这时struts侵入到了我的代码里。

使用spring,编写一些业务类的时候不需要继承spring特定的类,通过配置完成依赖注入后就可以使用,此时,spring就没有侵入到我业务类的代码里。

侵入式让用户代码产生对框架的依赖,这些代码不能在框架外使用,不利于代码的复用。但侵入式可以使用户跟框架更好的结合,更容易更充分的利用框架提供的功能。

非侵入式的代码则没有过多的依赖,可以很方便的迁移到其他地方。但是与用户代码互动的方式可能就比较复杂。

这两种方式都有各自的优缺点吧,主要看实际开发时怎么权衡了。

java 侵入性_侵入性和非侵入式指什么?相关推荐

  1. 微分算法 非侵入式负荷识别_一种非侵入式用电负荷识别方法与流程

    本发明涉及智能电网领域,具体地,涉及一种非侵入式用电负荷识别方法. 背景技术: 在智能电网环境下,智能量测设备会逐步得到广泛应用,从而能够得到用户负荷准确的.海量的数据.利用数据挖掘方法对用户负荷大数 ...

  2. java 非侵入式_非侵入式设计 和侵入式设计 意思?

    非侵入式系介绍DI用语,我得理解是两个组件(类,接口)之间,比较独立,不深入到另一个类内部,哪位大虾能点拨一二? 关于"侵入式"和"非侵入式"设计 有读者讲&q ...

  3. java非侵入式接口实现_No-intrusive, 非侵入式接口设计

    Go语言的Interface很大不同于C#,Java这种OOP语言的,其强大之处之一在于非侵入式设计. 基础复杂性是守恒的,需要解决的基本问题始终是需要解决的:最终的复杂性,却取决于基础复杂性彼此间的 ...

  4. java非侵入式是什么意思,什么是非侵入式设计?

    2015-11-01 06:30:03 阅读( 216 ) 一个客户端的代码可能包含框架功能和客户端自己的功能. 侵入式设计,就是设计者将框架功能"推"给客户端,而非侵入式设计,则 ...

  5. java非侵入式接口实现,C++编写非侵入式接口

    终于写到c++的非侵入式接口了,兴奋,开心,失望,解脱,-- .在搞了这么多的面向对象科普之后,本人也已经开始不耐烦,至此,不想做太多阐述. 虽然,很早就清楚怎么在c++下搞非侵入式接口,但是,整个框 ...

  6. 微分算法 非侵入式负荷识别_非侵入式负荷监测的识别方法和关键技术

    原标题:非侵入式负荷监测的识别方法和关键技术 在智能电网时代,必须突破目前用户家用电表只能读取用电总量,不能深入分析用户内部负荷成分,获取负荷信息有限的这一瓶颈,以完善用电信息采集系统和智能用电系统. ...

  7. 微分算法 非侵入式负荷识别_基于决策树的非侵入式负荷识别技术

    基于决策树的非侵入式负荷识别技术 杨雨 ; [期刊名称] <科学技术创新> [年 ( 卷 ), 期] 2018(000)013 [摘要] 本文旨在对非侵入式电力负荷监测与分解技术进行研究 ...

  8. 微分算法 非侵入式负荷识别_基于用户用电行为和粒子群算法的非侵入式负荷识别方法...

    基于用户用电行为和粒子群算法的非侵入式负荷识别方法 丁屹峰 1 ,杨 烁 1, 赵 乐 1 ,焦 然 1 ,马龙飞 1 ,许仪勋 2 ,王洪安 2 [摘 要] 居民用电行为是影响负荷识别的重要因素之一 ...

  9. 【安全硬件】Chap.2 如何破译一个CMOS门级电路;传播延迟、动态功耗、静态功耗可能泄露电路的构造以及输入密钥;非侵入式攻击 Non-Invasive Attacks

    [安全硬件]Chap.2 如何破译一个CMOS门级电路:传播延迟.动态功耗.静态功耗可能泄露电路的构造以及输入密钥:非侵入式攻击 Non-Invasive Attacks 前言 CMOS电路结构可能存 ...

最新文章

  1. 数据库 事务的特性ACID
  2. mysqlnd--的说明
  3. PHP程序员如何突破技术瓶颈
  4. uuid hashcode_Java UUID hashCode()方法与示例
  5. 70 个常见 Spring 面试题,Java 晋升必会
  6. 信息学奥赛一本通C++语言——1065:奇数求和
  7. 用PHPnow搭建PHP+MYSQL网站开发环境
  8. 爬虫-ProxyHandler代理类-通过代理发起请求
  9. 模式三工厂——开花结果
  10. 【工具】之搭建个人博客
  11. 2018 开始认真学习点python
  12. 苹果紧急修复三枚已遭在野利用的 iOS 0day
  13. 非功能测试之界面测试和易用性测试
  14. 射频芯片ATE测试从入门到放弃之基本概念
  15. 【业界新闻】浪潮高端存储系统技术发展及展望(上篇)
  16. python2 与 python3 共存
  17. Week3 Syntactic Parsing(句法分析)
  18. 抖音上的战斗力测试软件,战斗力测试app
  19. 成长有方法:爆发式成长的25个思维模型
  20. 操作系统进程调度算法——吸烟者问题

热门文章

  1. 十大热门的大数据技术
  2. Spring-Boot整合微信登陆、微信支付、邮箱发送、支付宝支付和阿里云短信
  3. 大一新生常见心理难题与解答
  4. OS X 安装命令行看图工具 chafa 以及其依赖libtool
  5. 验证身份证号的工具类
  6. (东南大学 王茜)数据结构 (64讲)
  7. UE4 获取主窗口HWND和调用WINAPI函数
  8. 上海科技大学和南方科技大学计算机,你相信吗?这几所大学,20年后不比北大清华差...
  9. 江苏省泰州中学2021年高考成绩查询,泰州中学排名前十名,2021年泰州中学排名一览表...
  10. raid技术基本原理