Spring核心包介绍

Spring框架是一个严格的分层的架构组织起来的框架,所有的其他模块都是依赖于核心的core模块构建的,这些模块组成了成个企业级开发的所有组建,可以选择性的依赖需要的模块即可,不需要依赖多余的模块,这样模块化的集成避免很多不必要的维护和后期迭代的问题。整个Spring框架的结构图如下,下面分别介绍一下各个模块的功能。
这里写图片描述
Core模块:构建应用的核心,主要提供了依赖注入的特性,其中一个最抽象的接口为BeanFactory,实现该结构的具体类可以通过读取一些bean的元数据例如xml文件和注解的形式配置加载到容器进行管理。
Aop模块:提供了切面编程的支持,它主要能够做到方法级别的动态代理,在编译阶段它是跳过的,是在运行时进行修改字节码或则动态实现代理类进行代理,它也使事务的管理变得简单,让事务的控制与业务代码隔离。
Dao模块:能够管理对于数据库的操作,打开连接池与释放连接池,也支持了声明事务与编程式事务。
ORM模块:提供流程的框架的ORM框架的组建.
J2EE模块:提供一些流程的J2EE组建,例如JDBC, JMX.
Web模块:提供对于常见mvc框架的支持,例如Struts和JSF。


核心的依赖关系是 core包为最基础的模块,beans包依赖core模块.aop又依赖于core和beans模块. context是一个独立的模块依赖于context-expression模块。context-support模块依赖于beans,context,core模块。tx模块依赖于beans与core, jdbc又依赖于tx.
我们首先来分析下core包和beans包:
这里写图片描述
asm和cglib包是spring对于字节码的支持,它能够更加灵活的和反射结合去修改字节码修改的东西,例如spring的aop动态代理就有基于cglib的动态字节码修改的方式,asm包为其提供技术支持。

  • core包提供一些核心的类与一些基本类抽象行为的接口。例如AliasRegistry为bean名称的定义抽象接口,AttributeAccessor为bean的元数据访问抽象接口。Ordered为一些复合操作的顺序抽象。包含了jvm一些spring的扩展.
  • beans包是spring容器核心的一些组件。例如所有容器的抽象BeanFactory,它抽象了容器的基本功能,基于它有一些扩展的容器功能抽象,例如ApplicationContext与ConfigurableListableBeanFactory等等,Spring自带很多容器的实现。BeanDefinitionRegistry抽象了存放bean的载体抽象,里面存放一个Map
    <”beanName,Bean”>定义抽象的数据结构。BeanDefinition就是bean对象的抽象.ResourceLoader抽象了对于配置资源加载资源的抽象,ResourcePatternResolver扩展了它并返回多个资源。完成的流程就是容器通过ResourceLoader去加载bean的元数据信息,然后并转换为BeanDefinition,最后存放在BeanDefinitionRegistry,提供给容器使用。beans包主要还是提供了容器的基本能力,并不给出具体的容器上下文实现。
  • context包给出了spring一些通用的上下文实现。ApplicationContext就是其中一个实现,它扩展了基本的容器的功能也包含了资源解析与容器时间通知与继承能力和国际化转换的能力。spring给出了默认的实现,其中主要的实现在AbstractApplicationContext当中,在整个容器加载过程中,我们有很多操作可以横切进去,干预容器的加载过程。例如BeanPostProcessor接口,就是能够在bean在装配完毕之后回调接口,还有一些Aware的接口例如ApplicationContextAware,它可以在容器起来之后对容器做一些事情,前提是这些自己扩展到的bean都被容器管理。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
相关介绍 1. spring-aop-4.1.1.RELEASE.jar Spring面向切面编程,提供AOP实现。Spring Beans之上将横切关注点模块化 2. spring-aspects-4.1.1.RELEASE.jar 提供的对AspectJ框架的整合,也是A面向切面编程。 AspectJ可用于基于普通Java对象的模块化 注意:aop 和 aspects区别: http://www.oschina.net/translate/comparative_analysis_between_spring_aop_and_aspectj。 3. spring-beans-4.1.1.RELEASE.jar IOC的基础实现。 配置文件 创建和管理bean。 4.spring-context-4.1.1.RELEASE.jar 在基础IOC功能上提供扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的支持。这个jar 文件为Spring 核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI 所需的全部类,instrumentation组件以及校验Validation 方面的相关类。 外部依赖spring-beans, (spring-aop)。 5. spring-context-support-4.1.1.RELEASE.jar 这个jar文件含支持缓存Cache(ehcache)、JCA、JMX、邮件服务(Java Mail、COS Mail)、任务计划Scheduling(Timer、Quartz)方面的类。 UI方面的用来与模板(Templating)引擎如 Velocity、FreeMarker、JasperReports集成的类, 6. spring-core-4.1.1.RELEASE.jar spring核心 7. spring-expression-4.1.1.RELEASE.jar spring表达语言 SpEL以"#{...}"进行标识。 8. spring-instrument-4.1.1.RELEASE.jar Spring对服务器的代理接口 9.spring-instrument-tomcat-4.1.1.RELEASE.jar Spring对tomcat连接池的集成 10. spring-jdbc-4.1.1.RELEASE.jar 对jdbc简单封装 11.spring-jms-4.1.1.RELEASE.jar 简单封装jms api接口 jms: Java消息服务(Java Message Service)应用程序接口 12. spring-messaging-4.1.1.RELEASE.jar 消息发送 13. spring-orm-4.1.1.RELEASE.jar 14. spring-oxm-4.1.1.RELEASE.jar Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换 15. spring-test-4.1.1.RELEASE.jar 支持Spring组建JUnit和TestNG的单元测试和集成测试。 16. spring-tx-4.1.1.RELEASE.jar 17. spring-web-4.1.1.RELEASE.jar 含Web应用开发时,用到Spring框架时所需的核心类,括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。 18. spring-webmvc-4.1.1.RELEASE.jar SpringMVC框架相关的所有类。含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。 19. spring-webmvc-portlet-4.1.1.RELEASE.jar http://www.cnblogs.com/dyllove98/archive/2013/07/01/3165750.html Porlet工作流程和Servlet的主要差异在于,Portlet的请求处理有两个独特 的阶段:动作阶段和显示阶段。动作阶段会有“后台”数据改变或动作的代码,这些代码 只会执行一次。显示阶段会产生用户每次刷新时的看到的显示内容。重要的是, 在单个请求的整个处理过程中,动作阶段只会

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值