博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring自学教程-介绍、特点、框架(一)
阅读量:5995 次
发布时间:2019-06-20

本文共 745 字,大约阅读时间需要 2 分钟。

一、spring是什么,有什么用?

22173042-90e5b6d4254a41d1951e2a306ec6ae47.png
22173042-58bdd505c1f6490a98bba3f92c7e1166.gif
一句话:面向企业应用,使用javabean代替ejb的java应用或web开发。

22173044-6b45c198633d487b93fbbc3558dc53f6.png
22173046-19b6f9ae445e48f18937ec809488a002.gif
侵入式
的做法就是要求用户代码“知道”框架的代码,表现为用户代码需要继承框架提供的类。
22173046-19b6f9ae445e48f18937ec809488a002.gif
非侵入式
则不需要用户代码引入框架代码的信息,从类的编写者角度来看,察觉不到框架的存在。 
例如:
使用struts的时候,我需要继承一些struts的类,这时struts侵入到了我的代码里。
使用spring,编写一些业务类的时候不需要继承spring特定的类,通过配置完成依赖注入后就可以使用,此时,spring就没有侵入到我业务类的代码里。
侵入式让用户代码产生对框架的依赖,这些代码不能在框架外使用,不利于代码的复用。但侵入式可以使用户跟框架更好的结合,更容易更充分的利用框架提供的功能。
非侵入式的代码则没有过多的依赖,可以很方便的迁移到其他地方。但是与用户代码互动的方式可能就比较复杂。
22173046-19b6f9ae445e48f18937ec809488a002.gif
内聚性
是对一个模块内部各个组成元素之间相互结合的紧密程度的度量指标。模块中组成元素结合的越紧密,模块的内聚性就越高,模块的独立性也就越高。理想的内聚性要求模块的功能应明确、单一,即一个模块只做一件事情。模块的内聚性和耦合性是两个相互对立且又密切相关的概念。
22173042-58bdd505c1f6490a98bba3f92c7e1166.gif一句话:spring是一个轻量级的非侵入式的控制反转和面向切面的容器框架。这里非侵入式是我们写的代码不会对框架产生依赖,可方便的迁移到其他地方,控制反转是说不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传给对象,面向切面是说我们开发的时候仅仅完场业务逻辑,切面分离了业务逻辑和系统级服务,这样我们就能进行内聚性的开发。

二、spring框架

spring定义了七个模块
22173047-0f8b7b12e4bf49a6902bbf9fd3c49323.png
下面我们对这个框架图进行讲解:
22173049-4bb93e12291240809be4f6df6672a117.png
22173051-21eac1c47d4643f0bd26a66909c08766.png
22173052-b45712fe4a2f40e8a00fe9ae63ee86dd.png
  

转载地址:http://ehmlx.baihongyu.com/

你可能感兴趣的文章
.net Framework各个版本之间的发展
查看>>
iOS开发-图片高斯模糊效果
查看>>
发布一个嘿嘿嘿的技术方案 —— 商用群发p2p网络
查看>>
在微信小程序的JS脚本中使用Promise来优化函数处理
查看>>
JS写的漂亮只是一方面,你可不要忽视浏览器的兼容性呀!:P
查看>>
批处理作业调度-回溯法
查看>>
12.4. 包含网页
查看>>
Jenkins实现Android自动化打包
查看>>
[裴礼文数学分析中的典型问题与方法习题参考解答]4.5.9
查看>>
[数学故事]国王的重赏
查看>>
Selenium2+python自动化63-简易项目搭建
查看>>
Managed Debugging Assistant 'PInvokeStackImbalance' has detected a problem in 解决方案
查看>>
centos7 安装mysql5.7.11注意事项
查看>>
[20150727]''与NULL.txt
查看>>
上海往事之教会宝宝学游泳
查看>>
SAP的系统审计以及SM19的使用
查看>>
你真的会玩SQL吗?冷落的Top和Apply
查看>>
SharePoint 2013 图文开发系列之创建内容类型
查看>>
cookie 简介
查看>>
ios和android内嵌h5页面联调小结
查看>>