zoukankan      html  css  js  c++  java
  • Spring学习之==>入门知识

    一、Spring是什么?

      Spring 是一种轻量级的、非侵入式的 Java/JavaEE 应用框架。Spring 使用的是基本的 JavaBean 来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

      Spring 的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的 JavaSE/EE full-stack(一站式) 轻量级开源框架。

    二、Spring能干什么?

      笼统的说,Spring 能作为一个超级的"粘合"平台,把很多的技术有效整合到一起 形成一个整体,以更好地解决问题,并使系统结构更优良、性能更出众。(体现体系结构设计的:组件式、装配式、插拔式、复用性、无侵入性等)。

      Spring 能干的事情很多,具体点说,最基本的有以下几条:

    • Ioc/DI
    • AOP
    • 对JDBC和ORM的支持
    • 对事物的支持
    • 各种技术的整合
    • Web应用框架(Spring MVC)

    三、Spring有什么?

    从上图可以看出Spring总共包含了大约20个模块,这些模块又被组成成为: 核心容器模块、数据访问/集成部分、Web部分、AOP部分和测试支持 几个部分。

    核心容器部分(Core Container)

    • Core和Beans模块: 提供了Spring最基础的功能,提供IoC和依赖注入特性;
    • Context模块: 基于Core和Beans来构建,它提供了用一种框架风格的方式来访问对象,有些像JNDI注册表。Context封装包继承了beans包的功能,还增加了国际化(I18N)、事件传播、资源装载、以及透明创建上下文;
    • Expression Language: 表达式语言模块,提供了在运行期间查询和操作对象图的能力;

    数据访问/集成部分(Data Access/Integration)

    • JDBC模块: 提供对JDBC的抽象,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码;
    • ORM模块: 提供了常用的"对象/关系" 映射APIs的集成层。其中包括:JAP、JDO、Hibernate、Ibatis;
    • OXM模块: 提供一个支持Object和XML进行映射的抽象层,其中包括JAXB、Castor、XMLBeans、JiBX、XStream;
    • JMS模块: 提供一套"消息生产者、消费者"模板用于更加简单的使用JMS;
    • Transaction模块: 支持程序通过简单声明性事务管理,只要是Spring管理对象都能得到Spring事务管理的好处;

    Web部分

    • Web模块:提供了基础的Web功能;
    • Web-Servlet模块:提供了Web应用的Model-View-Controller(MVC)实现;
    • Web-Struts模块:提供了对Struts集成的支持;
    • Web-Portlet模块:提供了在Portlet环境下的MVC实现;

    AOP部分

    •  AOP模块: 提供了符合AOP联盟规范的面向方面的编程实现,可以定于如:方法拦截器和切入点;
    • Aspects模块:提供了对AspectJ的集成;
    • Instrumenttation模块:提供了一些类级的工具支持和ClassLoader级的实现;

    Test部分

    •  Test模块: 提供对使用JUnit和TestNG来测试Spring组件的支持,它提供一致的ApplicationContexts并缓存这些上下文,它还能提供mock对象,使得你可以独立的测试代码;

    四、Spring的优点

    • 方便解耦,简化开发 (高内聚低耦合)
      • Spring就是一个大工厂(容器),可以将所有对象创建和依赖关系维护,交给Spring管理;
      • spring工厂是用于生成bean
    • AOP编程的支持
      • Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能;
    • 声明式事务的支持
      • 只需要通过配置就可以完成对事务的管理,而无需手动编程;
    • 方便程序的测试
      • Spring对Junit4支持,可以通过注解方便的测试Spring程序;
    • 方便集成各种优秀框架
      • Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持;
    • 降低JavaEE API的使用难度
      • Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低;
    • Java 源码是经典学习范例
      • Spring的源码设计精妙、结构清晰、匠心独运,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践范例。如果想在短时间内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果;
  • 相关阅读:
    构建maven的web项目时注意的问题(出现Error configuring application listener of class org.springframework.web.context.ContextLoaderListener 或者前端控制器无法加载)
    c3p0私有属性checkoutTimeout设置成1000引发的调试错误:
    sql面试题(学生表_课程表_成绩表_教师表)
    传值与传址
    new String()理解
    hashcode的理解
    CentOs安装ssh服务
    openstack swift memcached
    openstack swift middleware开发
    java实现二叉树
  • 原文地址:https://www.cnblogs.com/L-Test/p/11593638.html
Copyright © 2011-2022 走看看