学习中总结一些我认为必须了解的知识点:
一。Spring组成部分:
Core包是框架的最基础部分, 并提供依赖注入(Dependency Injection)特性来使你可管理Bean容器功能。 这里的基础概念是BeanFactory,它提供Factory模式来消除对程序性单例的需要, 并允许你从程序逻辑中分离出依赖关系的配置和描述。
构建于Beans包上Context包,提供了一种框架式的Bean访问方式, 有些象JNDI注册。Context包的特性得自Beans包,并添加了文本消息的发送,通过比如资源串, 事件传播,资源装载的方式和Context的透明创建,如通过Servlet容器。
DAO包提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。 该包也提供了一种方法实现编程性和声明性事务管理,不仅仅是针对实现特定接口的类, 而且对所有的POJO。
ORM包为流行的关系-对象映射APIs提供了集成层,包括JDO,Hibernate和iBatis。 通过ORM包,你可与所有Spring提供的其他特性相结合来使用这些对象/关系映射, 如前边提到的简单声明性事务管理。
Spring的AOP包提供与AOP联盟兼容的面向方面编程实现,允许你定义, 如方法拦截器和切点,来干净地给从逻辑上说应该被分离的功能实现代码解耦。 使用源码级的元数据功能,你可将各种行为信息合并到你的代码中,有点象.Net的attribute。
Spring的Web包提供了基本的面向Web的综合特性,如Multipart功能, 使用Servlet监听器的Context的初始化和面向Web的Applicatin Context。 当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结合。
Spring的Web MVC包提供了面向Web应用的Model-View-Controller实现。 Spring的MVC实现不仅仅是一种实现,它提供了一种domain model代码和web form的清晰分离, 这使你可使用Spring框架的所有其他特性,如校验。
二。控制反转(IoC)/依赖注入(DI)
什么是ioc?什么是DI?和传统的方式有什么不同呢?
简单来讲ioc就是让容器来控制程序(组件)之间的关系。控制权由传统的程序代码操控转变为交给容器来出来,控制权不同了,这就是反转。而DI是这一概念的另一说法,这一别名是由大师Martin Fowler的文章《Inversion of Control Containers and the Dependency Injection pattern》中所提出的理论而来。
三。组件的封装与管理
首先了解Spring的基础:Bean Wrapper , Bean Factory , ApplicationContext , Web Context.
(1)Bean Wrapper :是利用Reflection实现的单组件管理容器。创建维护Bean的实例。
(2)Bean Factory :类工厂、多组件管理容器、实例化,配置和管理众多bean的容器.....
(3)ApplicationContext:Bean Factory的扩展、扩展提供国际化支持、资源访问(ApplicationContext.gerResource)、监听传播等等。
(4)Web Context:针对web.xml提供可配置的ApplicationContext加载、容器提供ContextLoaderListener和ContextLoaderServlet,功能一样只是一个是Listener一个是Servlet,针对实际情况选择。
此文章为本人查阅大量网络资源、通过整理加上一些自己当时学习时的体会,希望能帮助学习Spring的朋友,这一篇适合初学者。