"汤阳光_Spring2.5课程文档( 一 )"
本文档主要介绍了Spring框架的基础知识,包括在开发应用时遇到的问题、解决这些问题的策略,以及Spring的核心概念——控制反转(IOC)。文档首先提出了两个实际开发中常见的问题,并给出了解决方案。
问题一涉及到的是服务层与数据访问层之间的依赖问题。当Service直接引用具体的实现类(如UserDaoImpl)时,会引发高耦合性,不利于更换或扩展。通过引入工厂模式,我们可以将实现类的生成交由工厂处理,从而实现与具体实现类的解耦。若需更换实现,只需更改配置文件即可。然而,当对象数量增加,且存在不同类型的实例需求(如单例或多例)时,简单的工厂模式可能不再适用,需要更复杂的工厂类,这时Spring的IoC容器便能提供解决方案。
问题二关注的是事务管理。传统的事务管理方式,如在Filter或Struts2拦截器中处理,可能导致事务范围过广、不必要的事务开启,以及无法针对具体方法配置事务属性。在业务层管理事务更为理想,Spring通过AOP(面向切面编程)提供的事务管理功能,可以避免大量重复的事务代码,同时允许更细粒度的事务控制。
控制反转(IOC)是Spring的核心特性,其思想是将对象的创建和维护从应用代码中分离出来,交由外部容器(如Spring IoC容器)负责。在示例代码中,PersonServiceBean直接创建了PersonDaoBean的实例,控制权在于应用本身。而在IoC中,PersonDao的实例由容器创建并注入到PersonServiceBean中,应用程序不再直接控制对象的生命周期,而是通过容器进行控制。这种方式使得组件之间的依赖关系更加灵活,有助于提高代码的可测试性和可维护性。
依赖查找(Dependency Lookup)和依赖注入(Dependency Injection)是IoC的两种实现方式。依赖查找是指组件通过容器查找依赖项,而依赖注入则是容器主动将依赖项注入到组件中。Spring提供了多种注入方式,如构造器注入、设值注入和接口注入等,以满足不同场景的需求。
这份文档是Spring框架学习的起点,涵盖了初步的IoC概念和事务管理问题,为后续深入学习Spring的AOP、Bean管理、数据访问集成等核心特性奠定了基础。