(1)Spring是一个解决了许多在J2EE开发中常见的的问题的强大框架。
(2)Springle提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的好习惯。
(3)Spring的架构基础是基于使用JavaBean属性的IoC(控制反转)容器。
(4)Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案的方面是独一无二的。
(5)Spring提供了唯一的数据管理抽象包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。
(6)Spring的数据访问架构还集成了Hibernate和其他O/R mapping 解决方案。
IOC:
IOC
控制反转(Invesion of Control)的缩写
控制:控制java对象的创建,属性的复值(依赖关系的管理)
反转:对象的创建由程序代码转移给外部的容器(spring)
正转:使用new 构造方法创建对象(在代码中创建对象)
IOC 允许创建一个可以构造对象的应用环境,然后向这些对象传递它们的协作对象。正如单词 倒置 所表明的,
IOC 就像反过来的JNDI。没有使用一堆抽象工厂、服务定位器、单元素(singleton)和直接构造(straightconstruction),
每一个对象都是用其协作对象构造的。因此是由容器管理协作对象(collaborator)。
Spring即使一个AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于您替换对象。
有了Spring,只要用JavaBean属性和配置文件加入依赖性(协作对象)。然后可以很容易地在需要时替换具有类似接口的协作对象。
依赖注入:
(Dependency Injection ) 简称 DI,
DI分类:
1)设置注入:调用java类的set方法,给属性复值。
2)构造注入:调用java类的构造方法,创建对象,同时给属性赋值。
引用类型的自动注入 : 由spring框架完成应用类型的赋值
自动注入分为:byName, byType
指定使用自动注入的方式是, 在
autowire="byName|byType":自动注入 按名称注入/按类型注入
byName(按名称自动注入): 类中的引用类型的属性名和配置文件中bean的id属性名一样。且数据类型是一样的。能够自动赋值。
byType(按类型自动注入): 类中的引用类型的数据类型和配置文件中bean的class属性是同源关系的,能自动注入。
同源关系:
1.类型是一样的。
2.是子类关系
3.是接口的实现类。
byType的注意事项:符合条件的对象只能有一个。