本部分覆盖了以下内容:

  • Chapter 28, Remoting and web services using Spring -- 使用Spring进行远程和web服务
  • Chapter 29, Enterprise JavaBeans (EJB) integration -- EJB集成
  • Chapter 30, JMS (Java Message Service) -- JMS (Java 消息服务)
  • Chapter 31, JMX
  • Chapter 32, JCA CCI
  • Chapter 33, Email
  • Chapter 34, Task Execution and Scheduling -- 任务执行和计划任务
  • Chapter 35, Dynamic language support -- 动态语言支持
  • Chapter 36, Cache Abstraction -- 缓存抽象

说明:后面会逐一跟进,这里只做介绍。 -- 如果没有耐心去研究标准,完全可以通过学习大量的应用来了解标准。


使用Spring进行远程和web服务 介绍

Spring的远程支持可以使用多种技术。该远程支持简化了那些启用了远程服务的开发,由你的Spring POJOs实现即可。

目前,Spring支持下列远程技术:

  • Remote Method Invocation (RMI)。 虽然使用Spring支持的RmiProxyFactoryBeanRmiServiceExporter都是传统的RMI (使用java.rmi.Remote接口和java.rmi.RemoteException),且通过RMI invokers (使用任意Java接口)来透明地远程 。
  • Spring的HTTP invoker。Spring提供了一个特殊的远程策略 -- 允许通过HTTP进行Java序列化,支持任意Java接口 (就像RMI invoker)。相应的支持类是HttpInvokerProxyFactoryBeanHttpInvokerServiceExporter
  • Hessian。通过使用Spring的HessianProxyFactoryBeanHessianServiceExporter,你可以透明地暴露你的服务 -- 使用Caucho提供的轻量级、二进制、基于HTTP的协议。
  • Burlap。Burlap是Caucho的基于XML的Hessian替代者。Spring提供了支持类如BurlapProxyFactoryBeanBurlapServiceExporter
  • JAX-WS。Spring提供了对web services的远程支持 -- 通过JAX-WS (是JAX-RPC的继承者,由Java EE 5和Java 6引入)。
  • JMS。使用JMS作为底层协议来远程,由JmsInvokerServiceExporterJmsInvokerProxyFactoryBean类提供。
  • AMQP。使用AMQP作为底层协议来远程,由Spring AMQP项目支持。

Enterprise JavaBeans (EJB)集成 介绍

作为一个轻量级容器,Spring经常被认为是EJB的替代者。我们认为对于很多应用和使用场景来说,Spring作为一个容器,结合其丰富的支持功能--在事物、ORM和JDBC访问领域,是一个更好的选择。

然而,必须指出,使用Spring不会阻止你使用EJBs。事实上,Spring使得访问EJBs和实现EJBs及其功能变得更简单了。

本章,我们会看一下Spring如何帮助你访问和实现EJBs。Spring提供了特别的value -- 当访问无状态session beans (SLSBs)时,所以我们会从讨论这个开始。

JMS (Java Message Service) 介绍

Spring提供了一个JMS集成框架,简化了JMS API的使用 -- 类似于Spring集成对JDBC API所做的。

JMS可以粗略的归为两大功能区域,分别是消息的production (生产) 和consumption (消费)。 JmsTemplate类用于消息production和同步的消息接收。对于异步接收,类似于Java EE的消息驱动的bean style,Spring提供了大量消息监听器容器,用于创建消息驱动的POJOs (MDPs)。Spring 还提供了一种声明式创建消息监听器的方式。

org.springframework.jms.core包提供了使用JMS的核心功能。它包含了JMS模板类,简化了JMS的使用,通过处理创建、释放资源,非常类似于JdbcTemplate为JDBC所做的。设计思想就是Spring模板提供帮助方法来执行通用的操作,对于更加复杂的使用,则委托给用户实现的回调接口。JMS 模板是一样的设计。这些类提供了不同的便利方法来发送消息、同步消费消息,以及将JMS session和消息生产者暴露给用户。

org.springframework.jms.support包提供了JMSException翻译功能。该翻译将checked JMSException层级转换成一个镜像的unchecked exceptions层级。如果有provider专有的javax.jms.JMSException子类 ,该异常会被封装到unchecked UncategorizedJmsException

org.springframework.jms.support.converter包提供了MessageConverter抽象 -- 用于Java objects和JMS消息之间的转换。

org.springframework.jms.support.destination包提供了不同的策略来管理JMS destinations,如提供一个服务定位器或者存储的JNDI中的destinations。

org.springframework.jms.annotation包提供了必要的设施来支持注解驱动的监听器端点 -- 使用@JmsListener。

org.springframework.jms.config包提供了jms namespace的解析器实现,以及java config支持来配置监听器容器和创建监听器端点。

最后,org.springframework.jms.connection包提供了一个ConnectionFactory的实现,适用于独立的应用。它还包含了Spring PlatformTransactionManager的用于JMS的实现(名字是JmsTransactionManager)。这样可以将JMS作为一个事务性的资源,无缝地集成到Spring的事务管理机制中。

JMX 介绍

Spring提供的JMX支持,可以简单透明地将你的Spring应用集成到JMX设施中。

什么是JMX?

本章不是JMX的介绍... 它不会试图解释为什么有人需要使用JMX。如果不知道,可以参考本章末尾的资源。Section 31.8, “Further Resources”

特别地,Spring的JMX支持提供了4个核心功能:

自动注册任意Spring bean作为一个JMX MBean。

弹性机制来控制你的beans的管理接口。

通过remote、JSR-160 connectors来声明式暴露MBeans。

对于本地和远程MBeans资源的简单代理。

这些功能用于将你的应用组件与Spring或JMX接口和类解耦。事实上,对于你的应用来说,大部分不需要意识到Spring或者JMX就可以使用Spring的JMX功能。

JCA CCI 介绍

Java EE提供了一个specification来标准化访问企业信息系统(EIS):JCA (Java EE Connector Architecture)。该specification被划分成几个不同的部分:

  • SPI (Service provider interfaces),connector provider必须实现的接口。这些接口组成了一个资源适配器,可以被部署到一个Java EE应用服务器上。在该场景中,服务器管理连接池、事物和安全(managed mode)。应用服务器还负责管理配置 -- 在客户端应用以外的地方保存。connector也可以不使用应用服务器;这种情况下,应用必须直接配置connector (non-managed mode)。
  • CCI (Common Client Interface),应用可以用来与connector交互的接口,与EIS通信。还提供了一个用于本地事物划分的API。

Spring CCI支持的目标是提供classes来访问一个CCI connector -- 以典型的Spring风格。

connectors的客户端侧并不总是使用CCI。一些connectors暴露了它们自己的接口,只提供JCA资源适配器来使用一个Java EE容器的system contracts (连接池、全局事物、安全)。Spring不为connector-specific的APIs提供特别的支持。

Email 介绍

依赖库

classpath中需要有下面的JAR,以使用Spring的email库。

  • The JavaMail library

该库是免费的,可以在网上获取到。使用maven:com.sun.mail:javax.mail

任务执行和计划任务 介绍

Spring框架为异步执行任务和计划计划提供了抽象:TaskExecutorTaskScheduler接口。Spring还提供了这些接口的一些实现,可以在一个应用服务器环境中支持线程池或代理到CommonJ。最终,使用通用接口抽象的这些实现远离了Java SE 5、6和Java EE 环境的不同。

Spring还提供了集成类以支持Timer的计划任务,部分是JDK 1.3后,还有Quartz Scheduler。两种schedulers都可以使用一个FactoryBean来设置,可以选择是引用到Timer还是Trigger实例。更多地,还有一个便捷类可以让你调用既有目标对象的一个方法 -- 类似于MethodInvokingFactoryBean操作。

动态语言支持 介绍

Spring 2.0 引入了对由动态语言(如JRuby)定义的类和对象的支持。...

支持:

  • JRuby 1.5+
  • Groovy 1.8+
  • BeanShell 2.0

缓存抽象 介绍

自版本3.1起,Spring框架可以将缓存透明地加入到现有的Spring应用中。类似于事物支持,缓存抽象允许一致地使用不同的缓存解决方案 -- 对代码的影响最小。

自Spring 4.1起,缓存抽象被显著地改进了,支持 JSR-107 annotations 和更多定制选项。

官方文档链接:

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/spring-integration.html

转载于:https://www.cnblogs.com/larryzeal/p/6219121.html

Spring 4 官方文档学习 Spring与Java EE技术的集成相关推荐

  1. Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(二)

    接前一篇 Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 本篇主要内容:Spring Type Conver ...

  2. Spring Boot 官方文档学习(一)入门及使用

    Spring Boot 官方文档学习(一)入门及使用 个人说明:本文内容都是从为知笔记上复制过来的,样式难免走样,以后再修改吧.另外,本文可以看作官方文档的选择性的翻译(大部分),以及个人使用经验及问 ...

  3. Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion

    本篇太乱,请移步: Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 写了删删了写,反复几次,对自己的描述很不 ...

  4. Spring 4 官方文档学习(十一)Web MVC 框架之异常处理

    1.HandlerExceptionResolver Spring HandlerExceptionResolver的实现们会处理controller执行过程中发送的unexpected except ...

  5. Spring 4 官方文档学习(十)数据访问之JDBC

    说明:未修订版,阅读起来极度困难 1.Spring框架JDBC的介绍 Spring JDBC - who does what? 动作 Spring 你 定义连接参数   是 打开连接 是   指定SQ ...

  6. Spring Framework 官方文档学习(三)之Resource

    起因 标准JDK中使用 java.net.URL 来处理资源,但有很多不足,例如不能限定classpath,不能限定 ServletContext 路径. 所以,Spring提供了 Resource ...

  7. Spring Data Commons 官方文档学习

    Spring Data Commons 官方文档学习   -by LarryZeal Version 1.12.6.Release, 2017-07-27 为知笔记版本在这里,带格式. Table o ...

  8. 如何找到spring的官方文档位置

    最近因为项目中遇到了一些问题, 百度不到比较好的方案, 就准备去看下spring的官方文档,  在此记录下: 1. 进入spring framework的官网项目页面: https://spring. ...

  9. 【Spring Boot官方文档原文理解翻译-持续更新中】

    [Spring Boot官方文档原文理解翻译-持续更新中] 文章目录 [Spring Boot官方文档原文理解翻译-持续更新中] Chapter 4. Getting Started 4.1. Int ...

最新文章

  1. 人工智能阴影检测与去除,实现一种基于反射的阴影检测与去除方法
  2. IntelliJ IDEA 安装go插件
  3. Github 2020年度报告:你以为新冠击溃了开发者?不!他们创造了更多代码...
  4. [UVa1213]Sum of Different Primes(递推,01背包)
  5. Docker安装部署ELK教程 (Elasticsearch+Kibana+Logstash+Filebeat)
  6. Spring Boot—SpringMVC自动配置原理以及扩展和全面接管SpringMVC
  7. AI:周志华老师文章《关于强人工智能》的阅读笔记以及感悟
  8. 读书笔记:锋利的JQuery
  9. Firefly 3288又一次制作android和lubuntu双系统固件
  10. 隨身碟檔案救援軟體救援刪除的檔案/丟失的資料
  11. 模糊控制算法实例解析(含代码)
  12. 为移动硬盘(硬盘盒)安装linux(傻瓜式,简单,高效)
  13. ZKTeco live20R指纹采集识别适配谷歌浏览器
  14. AttributeError: 'module' object has no attribute 'urlopen报错解决办法
  15. 玩转MAC OS!实测DIY兼容机装苹果系统
  16. Appium 真机测试
  17. OnLevelWasLoaded 弃用 Unity5.4 新方法 SceneManager.sceneLoaded
  18. 中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。用java实现程序解决问题。
  19. 一条优质公链需要具备哪些条件?
  20. Windows快捷键的使用

热门文章

  1. html框架集frame是啥意思,HTML框架集frameset和内嵌框架iframe
  2. 获取滑动条高度_HexMap学习笔记(三)——海拔高度与阶梯连接
  3. 前端怎么自我介绍_未雨绸缪,小米前端实习面经
  4. 如何在Eclipse中从XSD生成XML
  5. c语言中堆栈_C语言编程中的堆栈
  6. jquery prev_jQuery next()同级,jQuery prev()
  7. fork/join框架Java
  8. 为什么被喷的总是产品经理?
  9. Python 装饰器总结
  10. G盘文件系统RAW要怎么办啊