Spring源码主要的包为:
- bean:主要包含bean的定义,读取代码配置的bean,储存bean的工厂beanFactory,实例化bean,为bean注入属性的一些接口。具体为BeanDefinition,XmlBeanDefinitionReader,DefaultListableBeanFactory,BeanUtils,BeanWrapperImpl
- core:主要包含一些核心的工具类,Spring的其他组件都要使用到这个包里的类。主要有一些反射方法的工具类,代理类等其他一些类
- context: 主要是基于bean和core模块基础之上,进行了一次封装和一些扩展,包括国际化资源支持,jmx,schedul,ejb等j2ee的特性的支持
- aop:即面向切面编程,是基于aspectj的一个面向切面编程的实现。定义了方法拦截器和切点。主要的一个类是AnnotationAwareAspectJAutoProxyCreator,这个类是这个标签的解析类,可以开启spring的aop注解,通过扫描bean根据注解生成代理类实现面向切面编程,主要继承了BeanFactoryAware,用于传递beanfactory和BeanPostProcessor,用于拦截bean的实例化
- web:http协议的包。定义了和http容器有关的一些实体类,例如ServletServerHttpRequest,ServletServerHttpResponse等用来解析http数据,还有对web service的支持
- webmvc:spring的web开发的主要包。主要的一个类是DispatcherServlet,负责对http请求进行分发处理,其中关键的两个成员变量是HandlerMapping和HandlerAdapter,HandlerMapping 负责映射url,HandlerAdapter负责处理请求。resources文件夹下有一个配置文件DispatcherServlet.properties,配置了一些默认的属性。还有一个是ClassPathXmlApplicationContext,包含了一些上下文信息,还有渲染视图的一些view。
- jdbc:封装了对数据库的一些操作,数据源的定义.