1.了解框架
框架就是有基础功能的软件产品,我们在这个基础上进行开发。你不可能做什么都从底层电路01二进制开始搞起
Spring开源框架最初是为了降低企业应用开发复杂度的
Spring有很多内容,Spring Data , Spring Security , 我们先学习SpringFramework
2.SpringFramework简介
Spring是一个轻量级的控制反转(Inversion of Control)(也叫依赖注入Dependency Inject)和面向切面(Aspect Oriented Programming)的容器框架。
依赖注入:在一般实现中,由程序内部代码来控制程序间的关系,比如我们用new 关键字来实现两组键间关系的组合,但这种方式会造成组件间的耦合。IoC很好的解决了这个问题,通过将控制权交给外部容器,由容器动态的将依赖关系注入到组件中。
IoC的实现形式有两种:
依赖查找:容器提供回调接口和上下文环境给组件。EJB和Apache Avalon都是使用这种方式。
依赖注入:组件不做定位查询,只是提供普通的Java方法让容器去决定依赖关系。容器全权负责组件的装配,它会把符合依赖关系的对象通过JavaBean属性或者构造子传递给需要的对象。
*通过JavaBean属性注射依赖关系的做法称为设值方法注入(Setter Injection);
*将依赖关系作为构造子参数传入的做法称为构造子注入(Constructor Injection),注意构造函数形参要与.xml配置文件名字对应。
面向切面:面向切面编程,是指通过预编译方式或者运行期动态代理,在不修改源码的情况下给程序动态维护,添加功能的一种技术。主要应用于日志记录,性能统计,安全控制等方面。
Java领域的AOP实现有多种方案,主要包括:
1)AspectJ 预编译
2)JDK动态代理API
3)基于字节码的AOP,例如:Aspectwerkz, CGlib, Spring等
3.事务
*什么是事务,事务是指逻辑上的一组操作,要么全部成功,要么全部失败。
原子性:最小单位不可分割,要么全部发生,要么不发生
一致性:事务处理前后,数据完整性必须保持一致
隔离性:一个用户的事务不能被其他用户的事务所干扰,过个并发事务之间的数据要相互隔离
持久性:一个事务提交以后,对数据库数据的改变是永久的