1.Spring简介
1.1Spring是什么
(1)Spring是分层的 Java SE/EE应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。
(2)提供了展现层 SpringMVC 和持久层 Spring JDBCTemplate 以及业务层事务管理等众多的企业级应用技术 ,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的Java EE 企业应用开源框架。
1.2Spring发展历程
1.3Spring的优势
(1)方便解耦,简化开发:通过 Spring 提供的 IoC容器,可以将对象间的依赖关系交由 Spring 进行控制,避免硬编码所造成的过度耦合。 用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。
(2)AOP 编程的支持:通过 Spring的 AOP 功能,方便进行面向切面编程,许多不容易用传统 OOP 实现的功能可以通过 AOP 轻松实现。
(3)声明式事务的支持:可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务管理,提高开发效率和质量。
(4)方便程序的测试:可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可做的事情。
(5)方便集成各种优秀框架:Spring对各种优秀框架(Struts、Hibernate、Hessian、Quartz等)的支持。
(6)降低 JavaEE API 的使用难度:Spring对 JavaEE API(如 JDBC、JavaMail、远程调用等)进行了薄薄的封装层,使这些 API 的使用难度大为降低。
(7))Java 源码是经典学习范例:Spring的源代码设计精妙、结构清晰、匠心独用,处处体现着大师对Java 设计模式灵活运用以及对 Java技术的高深 造诣。它的源代码无意是 Java 技术的最佳实践的范例。
1.4Spring的体系结构
2.Spring快速入门
2.1Spring程序开发步骤
2.2导入Spring开发的基本包坐标
2.3编写Dao接口和实现类
2.4创建Spring核心配置文件
2.5在Spring配置文件中配置UserDaoImpl
2.6使用Spring的API获得Bean实例
3.Spring配置文件
3.1Bean标签基本配置
3.2Bean标签范围配置
注意:
3.3Bean生命周期配置
3.4Bean实例化三种方式
(1)无参构造方法实例化
(2)工厂静态方法实例化
(3)工厂实例方法实例化
3.5Bean的依赖注入入门
(1)创建 UserService,UserService 内部在调用 UserDao的save() 方法。
(2)将 UserServiceImpl 的创建权交给 Spring。
(3)从 Spring 容器中获得 UserService 进行操作。
3.6Bean的依赖注入分析
(1)目前UserService实例和UserDao实例都存在与Spring容器中,当前的做法是在容器外部获得UserService 实例和UserDao实例,然后在程序中进行结合。
(2)因为UserService和UserDao都在Spring容器中,而最终程序直接使用的是UserService,所以可以在 Spring容器中,将UserDao设置到UserService内部。
3.7Bean的依赖注入概念
(1)依赖注入(Dependency Injection):它是 Spring 框架核心 IOC 的具体实现。 在编写程序时,通过控制反转,把对象的创建交给了 Spring,但是代码中不可能出现没有依赖的情况。 IOC 解耦只是降低他们的依赖关系,但不会消除。例如:业务层仍会调用持久层的方法。 那这种业务层和持久层的依赖关系,在使用 Spring 之后,就让 Spring 来维护了。 简单的说,就是坐等框架把持久层对象传入业务层,而不用我们自己去获取。
(2)Bean的依赖注入方式
3.8Bean的依赖注入的数据类型
(1)普通数据类型
(2)集合数据类型(List)的注入
(3)集合数据类型(List)的注入
(4)集合数据类型( Map )的注入
(5)集合数据类型(Properties)的注入
3.9引入其他配置文件(分模块开发)
3.10Spring的重点配置
4.Spring相关API
4.1ApplicationContext的继承体系
4.2ApplicationContext的实现类
4.3 getBean()方法使用
4.4Spring的重点API