从根儿上学习spring一 之杂谈

相信学做Java开发的同学从开始工作时就被问及什么是spring的依赖注入,以及切面编程。今天我们简单再聊聊这两个概念。

依赖注入

这里的依赖不是动词依赖依靠的意思,而是名词。可以把这两个词翻过来读下”注入依赖“,所谓的依赖可以理解成一个类有很多属性,这些属性就是这里的依赖,依赖注入就是spring可以自动注入你写的这个类定义的这些属性。

有一种你只管想象或者定义,而spring为你构造实现的味道。当你的工程有几百上千个类时依赖的自动注入将极大简化代码逻辑使程序员们专注于业务。

spring的aop能力

aop不是spring独创,这只是一个编程思想或者方法,指的是在某段程序前后执行另一段代码逻辑,以满足对具有相同特性的代码逻辑做通用的处理。比如你想对所有在xxx包下的方法执行前先校验用户权限,那么切面编程是最好的选择,它可以省了在每个方法前都调用一遍权限校验的逻辑。

看似简单的两个能力spring却对其玩出了花,比如依赖注入就有多种方式实现,如可以设置按名称注入,按类型注入或者使用构造器自动注入等,又或者通过注解指定来注入,注解又有不同。而在注入前的准备也是一件复杂的工作,得先对需要注入的依赖进行标记,而标记手段可以有很多种,比如通过xml文件来配置,或者通过注解来指定。标记后得读取所标记的文件还得判断被标记的文件是否符合自动注入条件,比如对于抽象类无法注入等判断。

所以一个优秀的开源框架往往写的十分复杂,细节考虑的方方面面代码量也会变得很大,而对于那些想阅读其源码了解其原理的人来说一开始可能并不是一件容易的事。而我作为一个10年老程序员斗胆说一些自己的浅见。入行IT也是机缘巧合,记得刚入行时最怕的就是ssh,分别是spring,structs,hibernate其中spring是最让我头大的真的是一点不懂,无数的xml配置仿佛是天书一般让人从心底开始生畏,正由于害怕导致似乎大脑开始抵触似的更难接受相关知识。而到如今到信手拈来,其中的经验个人觉得简单总结就是看多了用多了熟悉了。这里的看多了我的做法是看优秀的前人写的博客,不论是使用用法还是源码讲解都看还要自己尝试去阅读spring源码;用多了自然是工作中无时无刻都离不开spring,因为相信国内的互联网公司除了一些特别的大厂可能会自研框架代替spring大都是使用spring吧。

或许大家从中发现我这个经验似乎没有什么技巧并谈不上什么好的学习方法,只是简单的日积月累式的阶梯增长罢了,换任何人干个十年八年的一样可以,或者比我做得更好。我觉得你这么想没毛病,我是认同的,因为对于spring框架来说并没有多少复杂的算法需要多聪明的大脑,只要你肯花时间多看多学还是容易学的通的。

如果非要谈一些学习经验的话,我也想谈谈我的看法不一定对仅供参考。

第1步:找到适合自己的学习资料。很多大脑建议新人学习一个新东西时都建议去看官网,官网确实是非常完整的学习资料,但对很多新手来说不太友好。比如一些人英语很不好而框架官网都是英文学习起来很费劲。有些官网写的可能也并不是很时候新手入门。

我的建议是先找一些博客文章做一些简单入门了解再做打算

第2步:确定学习方向。对于你想学的东西确定你想学习的深度和方向,比如你希望即会用spring又可以了解ioc的原理

第3步:尽量弄清楚你要学的框架的总体架构和特性,看博客配合官网对其有个总体上的认识。

第4步:制定目标严格执行。如前两周学会其使用方法;接下来三周看完ioc相关源码。

第5步:输出博客或者笔记。

第6步:公司技术分享会开始装逼。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值