Spring框架整理
-
来源
Spring框架时由于软件开发的复杂性而创建的。Spring使用的是基本的Bean来完成以前只可能由EJB完成的事情。 -
目的
Spring的最大的目的就是使JAVA EE开发更加容易。同时,Spring之所以与Struts、Hibernaete等单层框架不同,是因为Spring致力于提供一个以同意的、搞笑的方式构造整个应用,并且可以将单层框架以最佳的组合柔和在一起建立一个连贯的结构体系。
1.可以令人方便愉快的使用Spring。
2.应用程序代码并不依赖于Spring APIs。
3.Spring不和现有的解决方案竞争,二十致力于将它们融合在一起。 -
初衷
1.JAVA EE开发应该更加简单。
2.使用接口而不是实用类,是更好的编程习惯。Spring将使用接口的复杂的几乎降低到了零。
3.位JavaBean提供了一个更好的应用框架。
4.更多地强调面对对象的设计,而不是现行的技术如JAVA EE。
5.更加减少不必要的异常捕捉。
6.使应用程序更加容易测试。 -
组成
1、最完善的轻量级核心框架。
2、通用的事务管理抽象层。
3、JDBC抽象层。
4、集成了Toplink, Hibernate, JDO, and iBATIS SQL Maps。
5、AOP功能。
6、灵活的MVC Web应用框架。
Tips:
①.事物管理抽象层:
三个主要接口:
1…TransactionDefinition
用于描述事物的隔离级别,超时时间,是否为只读事务,事务传播行为
2.TransactionStatus
代表了一个事务的运行状态
3.PlatformTransactionManager
抽象事务的提交和回滚(回滚到事务的某个保存点后提交) ,也是Spring事务编程的核心接口。
②.JDBC抽象层。
Spring所提供的JDBC抽象框架由四个不同的包组成:
1.核心包包含JdbcTemplate。这个类是一个基础类之一-由Spring框架的JDBC支持提供并使用。
2.数据源包是实现单元测试数据库存取代码的重要的一部分。它的DriverManagerDataSource能够以一种类似于你已经习惯于JDBC中的用法:只要创建一个新的DriverManagerDataSource并且调用setter方法来设置DriverClassName,Url,Username和Password。
3. 对象包中包含类,用于描述RDBMS查询、更改和存储过程为线程 安全的、可重用的对象。
4. 支持包-你可以从这里找到SQLException翻译功能和一些工具类
具体介绍:https://blog.csdn.net/ycyheartfly/article/details/1515383
③Toplink
是位居第一的java对象关系可持续性体系结构。
简介:https://blog.csdn.net/huangleijay/article/details/29410841
④Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的JavaEE架构中取代CMP,完成数据持久化的重任。
⑤iBATIS
和众多的 SourceForge 开源项目一样,iBATIS 曾经也是其中的一员。在2004年11月3日成功地成为了Apache Incubator 下的子项目。 iBATIS 包括 for Java 和 for .NET 两个版本,for Java 版提供了SQL Maps 和DAO 框架,for .NET 只提供了 SQL Maps 框架。
⑥AOP功能
日志记录,性能统计,安全控制,事务处理,异常处理等等wn及扩展 -
总结
IOC: 控制反转
即控制权的转移,将我们创建对象的方式反转了,以前对象的创建是由我们开发人员自己维护,包括依赖关系也是自己注入。使用了spring之后,对象的创建以及依赖关系可以由spring完成创建以及注入,反转控制就是反转了对象的创建方式,从我们自己创建反转给了程序创建(spring)
DI: Dependency Injection 依赖注入
spring这个容器中,替你管理着一系列的类,前提是你需要将这些类交给spring容器进行管理,然后在你需要的时候,不是自己去定义,而是直接向spring容器索取,当spring容器知道你的需求之后,就会去它所管理的组件中进行查找,然后直接给你所需要的组件.
实现IOC思想需要DI做支持
注入方式: 1.set方式注入 2.构造方法注入 3.字段注入
注入类型: 1.值类型注入 2.引用类型注入
详细总结可见[itcats_cn]的总结
原文链接:https://blog.csdn.net/itcats_cn/article/details/81479185