Spring的基本概述
这篇Blog将简单介绍Spring及其特性,并简单介绍Spring的IOC开发入门。
什么是Spring?
- spring是一个开源的轻量级J2SE/EE开发的一站式框架。所谓一站式是指Spring在J2EE开发的每一层都有相应的解决方案,例如针对Web层,提供SpringMVC;针对Service层,提供Spring的Bean管理、Spring声明式事务;针对DAO层,提供Spring的JDBC模板、ORM模块等等。
为什么学习Spring?
- Spring框架通过提供IOC避免程序过度耦合,简化开发;
- Spring提供AOP功能,方便进行面向方面的编程;
- Spring提供声明式事务的支持,通过声明式方式灵活地进行事务管理,提高开发效率和质量;
- 方便程序的测试;
- Spring框架方便继承各种优秀的框架;
- Spring降低了Java EE API的使用难度,对许多难用的J2EE API进行简单封装,降低使用难度。
Spring开发包
- 官网:http://spring.io/
- 开发包说明:
- dist 为Spring框架
- docs 为说明文档
- schema 为Spring框架约束
- dependencies 为框架依赖库
- 解压Spring框架
- docs :Spring的开发规范和API
- libs :Spring的开发的jar和源码
- schema :Spring的配置文件的约束
Spring IOC开发入门
IOC(Inversion of Control)控制反转。将对象的创建权反转给Spring。
创建Spring项目
- 引入Spring的jar包
Spring的核心容器为Beans、Core、Context以及SpEL,对应的从解压后的Spring框架中将对应的jar包复制到项目lib目录下,并为其创建路径:
- Spring IOC的底层实现
相较于传统的程序设计,Spring的底层由工厂类、反射机制以及位置文件来实现,具体如下图所示:
- 将接口和实现类交给Spring管理
- 在项目src目录下新建xml文件:applicationContext.xml
- 在Spring的解压路径下 E:\Framwork\Spring\spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\htmlxsd-configuration.html 这个说明文档网页的最下方 “Beans Schema” 部分复制配置文件信息,并添加配置将Dao的实现类加入配置:
- 编写Spring方式测试类
IOC和DI
- IOC:控制反转,将对象的创建权交给Spring管理
- DI:依赖注入,前提必须是在IOC环境下,Spring管理这个类的创建时将类的依赖属性注入进来
- 面向对象的关系
- 依赖
class A{ ... } class B{ public void xxx(A a){ ... } }
- 继承(is a)
class A{ ... } class B extends A{ ... }
- 聚合(has a)
- 依赖
Spring的工厂类
- Spring工厂类结构图
从图中可以看出ApplocationContext继承了BeanFactory
- ApplicationContext(新版本工厂类)
- 在加载配置文件时就会将Spring所管理的类都实例化;
- ClassPathXmlApplicationContext : 加载类路径下(src)的配置文件
- FileSystemXmlApplicationContext :加载文件系统下的配置文件
- BeanFactory(老版本工厂类)
- 在调用getBean()方法时才会对类实例化