spring简介

Spring框架概述

spring框架是一种轻量级的解决方案,为构建企业级应用提供一站式服务。Spring包括很多模块,但是并不意味着你要使用Spring就要引入它的很多功能,你可以根据自己的需求选择性的引入需要用到的模块(比如,你可以只使用Spring的IOC容器,而不用引入web模块)
Spring是非侵入性的,这意味着业务逻辑代码可以不依赖于框架本身,开发人员可以专注于业务功能的实现,而不必关心框架内部的处理逻辑。

依赖注入和控制反转

 控制反转是Spring的核心思想,到底什么是控制反转,对什么的控制进行了反转?2004年,Martin Fowler在他的网站上提出了一个关于控制反转(IoC)的问题。“在控制的哪些方面发生了逆转?”。Fowler建议重新命名该原则,使其更易于解释,并提出了依赖注入。
控制反转是指,获取对象的方式进行了反转,传统的对象获取需我们在使用的时候主动去new,而现在不需要自己去new对象,需要用到对象时由spirng ioc容器帮你创建,创建对象的控制权由你自己变成spring ioc容器,这就是对象的控制权进行了反转。
依赖注入跟控制反转其实是从不同的方向表达同一种思想,依赖注入说的是对象的获取需要依赖spring ioc容器,当需要处理对象间的依赖关系时,spirng ioc容器会将需要的对象依赖关系注入到相应的对象中,不需要我们主动去创建对象。

spring的模块

Spring是一个功能全面的框架,它提供了企业应用开发的各个模块支持

这里写图片描述

Core Container模块

Core container包括以下模块:

  • Spring-core
  • Spring-Beans
  • Spring-Context
  • Spring-Context-support
  • Spring-expression

Spring-core、Spring-Beans模块提供了框架最基础的功能,包括IOC和依赖注入特性。
Spring-Context模块构建于Core和Beans模块坚实的基础之上,它是一种类似于JNDI的访问对象的方式,上下文模块从bean模块继承其特性,并添加对国际化、事件传播、资源加载等功能的支持,ApplicationContext 是Context模块的核心焦点。
Spring-Context-support提供了将第三方库集成到Spring应用程序上下文中的支持,v比如,缓存(EhCache、Guava、JCache)、邮件(JavaMail)、调度(CommonJ、Quartz)和模板引擎(FreeMarker、JasperReports、Velocity)等
Spring-expression模块提供了一种强大的表达式语言,用于在运行时查询和操作对象,它是JSP规格中EL表达式的扩展,支持设置和获取属性值、属性赋值、方法调用、访问数组、集合和索引器的内容、逻辑和算术运算符、命名变量以及从Spring的IoC容器中按名称检索对象。

AOP and Instrumentation
  • Spring-aop模块提供了一个面向切面编辑的实现,比如方法拦截器、切入点分离
  • spring-aspects模块提供了与AspectJ的集成
  • spring-instrument模块提供了用于某些应用服务器的类检测支持和类加载器实现
Messaging

Spring4.x包含一个Spring消息传递模块,其中包含Message、MessageChannel、MessageHandler等,作为基于消息的应用程序的基础。该模块还包含一组用于将消息映射到方法的注释,类似于基于Spring MVC注释的编程模型

Data Access/Integration

Data Access/Integration由JDBC、ORM、OXM、JMS和事务模块组成。

  • spring-jdbc模块提供了一个JDBC抽象层,它消除了对特定于数据库供应商的错误代码进行冗长的JDBC编码和解析的需要
  • spring-tx模块为实现特殊接口的类和所有pojo(普通的旧Java对象)支持编程和声明式事务管理
  • spring-orm模块为流行的对象关系映射api(包括JPA、JDO和Hibernate)提供了集成。使用Spring -orm模块,您可以将所有这些O/R映射框架与Spring提供的所有其他特性结合使用,例如前面提到的简单声明式事务管理特性
  • spring-oxm模块提供了一个抽象层,支持对象/XML映射实现,比如JAXB、Castor、XMLBeans、JiBX和XStream
  • spring-jms模块(Java消息传递服务)包含用于生产和消费消息的特性。从Spring Framework 4.1开始,它提供了与Spring消息传递模块的集成

Web

Web层由spring-webspring-webmvcspring-websocketspring-webmvc-portlet模块组成。

  • spring-web模块提供了基本的面向web的集成特性,例如文件上传功能和使用Servlet侦听器和面向web的应用程序上下文初始化IoC容器。
  • Spring -webmvc模块(也称为Web- servlet模块)包含Spring用于Web应用程序的模型-视图-控制器(MVC)和REST Web服务实现。
  • spring-webmvc-portlet模块(也称为Web-Portlet模块)提供了在Portlet环境中使用的MVC实现,并反映了基于servlet的spring-webmvc模块的功能

Test

Spring-test模块支持使用JUnit或TestNG对Spring组件进行单元测试和集成测试。它还提供模拟对象,您可以使用这些对象单独测试代码

spring框架的模块明细:

GroupIdArtifactIdDescription
org.springframeworkspring-aop基于代理的AOP支持
org.springframeworkspring-aspects基于AspectJ的aspects支持
org.springframeworkspring-beansbean支持,包括Groovy
org.springframeworkspring-context应用程序上下文运行时,包括调度和远程抽象
org.springframeworkspring-context-support支持将公共第三方库集成到Spring应用程序上下文的类
org.springframeworkspring-core核心模块,被许多其他Spring模块使用
org.springframeworkspring-expressionSpring Expression Language (SpEL)
org.springframeworkspring-instrument用于JVM引导的插件代理
org.springframeworkspring-instrument-tomcatTomcat的插件代理
org.springframeworkspring-jdbcJDBC支持包,包括数据源设置和JDBC访问支持
org.springframeworkspring-jmsJMS支持包,包括用于发送/接收JMS消息
org.springframeworkspring-messaging支持消息传递体系结构和协议
org.springframeworkspring-orm对象/关系映射,包括JPA和Hibernate支持
org.springframeworkspring-oxm对象/ XML映射
org.springframeworkspring-test支持单元测试和集成测试Spring组件
org.springframeworkspring-tx事务基础结构,包括DAO支持和JCA集成
org.springframeworkspring-web基本的web支持,包括web客户端和基于web的远程控制
org.springframeworkspring-webmvc提供MVC和REST支持
org.springframeworkspring-webmvc-portlet在Portlet环境中使用的MVC实现
org.springframeworkspring-websocketWebSocket和SockJS基础架构,包括STOMP消息传递支持
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值