Spring是轻量级的框架,其有两大特点:Ioc控制反转、Aop面向切面编程
Spring学习:http://blog.csdn.net/liujiahan629629/article/details/20735407
http://blog.csdn.net/lishuangzhe7047/article/details/20740209
控制反转:http://blog.csdn.net/zhujun_xiaoxin/article/details/51377782
侵入性:https://zhidao.baidu.com/question/151076548.html
1>Ioc控制反转(对象创建责任的反转)
Ioc有三种依赖注入(DI)的实现方式:用Set方法注入、构造方法注入、用接口注入(Spring暂不支持)
2>Aop面向切面编程(是指 在运行时,动态的将代码切入到类的指定方法,或者指定位置的编程思想)
这里我们不得不说一下Oop面向对象编程,面向对象编程有三大特点:封装、继承、多态。封装就是要将各个功能封装到不同的对象中去,也就是将各个和功能的方法放到一个类里边去。这样达到封装的目的,降低了程序的复杂程度,实现了类的可重用性。
但是如果当两个类中有相似的功能方法,这样相似的代码会存在这两个类中,出现了代码重复的现象,降低了代码的可重用行。也许有人提出将相同的代码提出去到一个独立类里边,这两个类分别去调用。这样是实现了代码的可重用,但是会使这两个类都会与独立类有耦合,修改了独立类 会对那两个类造成影响,这样不符合我们高内聚、低耦合的编程思想。而现在这种在运行时,动态的将代码切入到类指定的方法或指定的位置的编程思想出现了(Aop面向切面编程)
我们一般把 切入到类指定方法或位置的代码片段称为切面,把切入到哪些类、哪些方法、哪些位置的叫做切入点。这样我们就可以把几个类中相似的代码提取到切片中,等到需要的时候则动态的将这段代码切入到类中指定的位置中去。
3>Spring事务处理
一些链接:http://www.cnblogs.com/mxmbk/p/5341258.html http://blog.csdn.net/jdream314/article/details/12647449
Spring配置文件中关于事务配置总是由三部分组成:分别是dataSource、TransationManager、代理机制等,无论是哪种配置,一般变化的是代理机制部分;DataSource、TransationManager这两部分只会根据数据访问方式而有所变化,例如使用Hibernate访问数据时,DataSource实际是SessionFactory, TransactionManager实际是HibernateTransactionManager,具体如下:
事务处理的原理图: