• Spring mvc 4系列教程(一)


    一、Spring框架概览

    Spring框架是一种轻量级、一站式解决企业级应用的解决方案。不仅如此,Spring的模块化的特点,可以使你只引用所需要的部分,而无需引用全部。你可以使用控制反转容器(IoC container)、Hibernate集成代码、JDBC抽象层。Spring支持事务管理声明、RMIWeb Service实现远程调用。它能够全部支持MVC框架的全部特性,且能显示集成AOP到代码中。

    Spring的设计是非侵入式的(non-intrusive),即领域(domain)逻辑代码通常不依赖于框架本身。现在,已经有数据访问技术和Spring的库出现,来支持集成层(数据访问层),并且容易使用。

    1.开始使用Spring

    这一系列会包含Spring框架的全部特性的详细信息。如果想快速了解Spring,可以访问https://spring.io/guides

    2.Spring框架介绍

    Spring是一种java平台,其提供了丰富的基础组件(infrastructure),来支持java应用的开发。Spring提供了组件,可以让你更关注于应用本身。

    2.1依赖注入(Dependency Injection)和控制反转(Inversion of Control

    先介绍一个小背景:Martin Fowler曾在2004他的个人网站提出了关于控制反转IoC的一个问题:反转的是控件的什么方面?他建议将此修改成一个更好的不言而喻的名字,即后来提出的依赖注入

    虽然java平台提供了丰富的函数来支持应用开发,但缺少能够将这些基本构件打包成整体的方式。当然,可以使用Factory,Abstract Factory,BuilderDecoratorand Service Locator来组成不同的类和对象,但这些模式是非常简单定式的(指定名字、描述及何处使用等),并且还需要开发者自己去实现。

    Spring框架的IoC解决了这一问题,它提供了将不同的组件集成到应用中的一种方法。许多机构和组织都使用Spring框架构件强壮的、持久的应用。

    2.2模块Modules

    Spring框架大约由20种模块组成,被分成以下几大类:核心容器(Core Container)、数据访问集成(Data Access/Integration)、Web、面向切面编程(Aspect Oriented Programming)、工具(Instrumentation)、消息和测试。如下图所示:

     

    下面将会详细介绍每个组件:

    核心容器:

    包含了spring-core, spring-beans, spring-context, and springexpression(Spring Expression Language)模块。

    spring-core 和 spring-beans提供了Spring的基础功能,包含控制反转和依赖注入。BeanFactory是工厂模式的复杂实现,可以将依赖的配置和声明从程序逻辑中分离开来。

    spring-context建立在corebeans的基础上,是类似JNDI的一种访问对象的方式。spring-context模块继承了beans模块的特性,并且增加了国际化(例如使用资源包)、事件传播(event propagation)、资源加载、上下文的透明创建(transparent

    creation of contexts)。Context也支持JAVA EE的特性,例如EJBJMX和基础的远程调用。ApplicationContext是context模块的重点。

    spring-expression为查询和操作对象提供了丰富的表达式语言(Expression Language)。它是统一表达式语言(unified expression language)的扩展。这种语言支持属性值的getset,属性赋值,方法调用,命名变量和检索对象。

    面向切面编程(AOP)和工具(Instrumentation):

    spring-aop提供了面向切面的实现方法,允许定义方法拦截器和切入点。spring-aspects模块集成了AspectJ。

    spring-instrument提供了类工具的支持和应用服务器的类装载器的实现。

    消息:

    Spring 4包含Message,MessageChannel,MessageHandler等。

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

    包含JDBC,ORM,OXM,JMS和事务模块。

    spring-jdbc提供了JDBC数据库抽象层,减少了冗余的JDBC代码的编写,也不用解析各数据库厂商的错误规范。

    Web:

    包含spring-web,,spring-webmvc,,spring-websocket,springwebmvc-Portlet模块。

    spring-web模块提供了基本的面向web集成的特性,例如多文件上传功能、IoC容器的实例化。也包含了Spring远程支持中web相关的部分。

    spring-webmvc模块(即Web-Servlet模块)包含了MVC的实现,使得web和领域模块分离。

    spring-webmvc-portlet模块(即Web-Portlet模块)提供了在Portlet中的MVC实现。

    Test:

    支持Spring框架的单元测试和集成测试。

     

    【未完待续】

     

    参考资料:《Spring Framework Reference Documentation 4.1.1.RELEASE

  • 相关阅读:
    org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].Standard
    mybatis plus 代码生成器
    ServerU FTP服务器无法上传中文名文件怎么办
    关于java文件下载文件名乱码问题解决方案
    使用Redis模拟简单分布式锁,解决单点故障的问题
    springboot定时任务处理
    AtomicInteger类的理解与使用
    java队列——queue详细分析
    ABAP DEMO so批量导入
    ABAP DEMO ole示例程序
  • 原文地址:https://www.cnblogs.com/jpcflyer/p/5805119.html
Copyright © 2020-2023  润新知