Spring框架笔记(第1天 )

个人认为,学习Spring框架是从教室迈向企业的第一步,搭建Spring之前,我先理解一下里面的名词和概念。(Spring小白(我的理解))

Spring是一个轻量型的控制反转(IoC)面向切面的(AOP)容器框架。

Spring的两大内核:

1.IoC(Inverse of Control):控制反转。

控制反转:当对象A用到对象B才能完成某件事或者实现某个功能,这时对象A就对B产生了依赖。印象最深刻的依赖表现,就是使用JDBC连接数据库的几个步骤。所以在我们手动new对象时考虑的就需要很多。而利用Spring中IoC的特性,将new对象的权力交给Spring,由Spring来new,这样A就不依赖B了。对,没错。解耦。所以控制反转就是将对象的控制权(什么时候创建、初始化、销毁)转移,这里转移给Spring容器。程序员需要考虑的就是对象需要干什么,执行的操作。

2.AOP(Aspect Oriented Programming):面向切面编程。

面向切面编程:主要针对业务处理过程中的切面进行提取。例子:去银行  存钱、取钱、查询余额。

第一条线 存钱: 验证身份   -----存钱。第二条线:验证身份------取钱。第三条线:验证身份------查询余额。

很显然,这三个功能有一个共同点:验证身份。   AOP就像一个平面,在三条线切下去,提取验证身份这个操作。交给Spring,告诉它在哪个位置加上就可以了(不利用AOP 就需要复制两遍验证身份的代码,粘贴两遍,操作多了,复制粘贴就多了,累)。利用SpringAOP特性省时、省力还解耦。

解耦只是Spring唯一的特点么?不。

Spring的优点(比较明显的):

1.非侵入式设计:所谓侵入式设计就是我的代码需要实现或者继承框架的某个类,表现上的感觉就是框架侵入了我的代码,离开框架我的这个代码就拉闸了。但是侵入式有侵入式的好处,(毕竟被人家侵犯了总得有好处嘛,嘿嘿)我的代码可以很好的框架结合,高效率的利用框架提供的某些功能。  那么非侵入式设计呢,在Spring中,就是我的代码不需要继承Spring中的某个类,迁移出来也可以使用,不会对框架产生过多的依赖。

2.方便解耦、简化开发:将对象的创建和依赖关系封装起来都交给Spring。

3.支持AOP:将安全、日志、事务等代码集中处理(一刀下去,提取出来),提高复用性。

4.支持声明式事务处理:在配置文件中加入标签,在标签里写些属性处理事务(解耦、非侵入式设计很好体现)。

5.方便程序的测试:提供了 JUnit模块化测试。

。。。。。。等等





刚开始对Spring时啥也不知道的状态,在某站上看看视频,记录下心得。

你可能感兴趣的:(Spring框架笔记(第1天 ))