Spring 4 官方文档学习 Spring与Java EE技术的集成
本部分覆盖了以下内容:
- 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支持的
RmiProxyFactoryBean
和RmiServiceExporter
都是传统的RMI (使用java.rmi.Remote
接口和java.rmi.RemoteException
),且通过RMI invokers (使用任意Java接口)来透明地远程 。 - Spring的HTTP invoker。Spring提供了一个特殊的远程策略 -- 允许通过HTTP进行Java序列化,支持任意Java接口 (就像RMI invoker)。相应的支持类是
HttpInvokerProxyFactoryBean
和HttpInvokerServiceExporter
。 - Hessian。通过使用Spring的
HessianProxyFactoryBean
和HessianServiceExporter
,你可以透明地暴露你的服务 -- 使用Caucho提供的轻量级、二进制、基于HTTP的协议。 - Burlap。Burlap是Caucho的基于XML的Hessian替代者。Spring提供了支持类如
BurlapProxyFactoryBean
和BurlapServiceExporter
。 - JAX-WS。Spring提供了对web services的远程支持 -- 通过JAX-WS (是JAX-RPC的继承者,由Java EE 5和Java 6引入)。
- JMS。使用JMS作为底层协议来远程,由
JmsInvokerServiceExporter
和JmsInvokerProxyFactoryBean
类提供。 - 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框架为异步执行任务和计划计划提供了抽象:TaskExecutor
和TaskScheduler
接口。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
Spring 4 官方文档学习 Spring与Java EE技术的集成的更多相关文章
- Spring 4 官方文档学习(十二)View技术
关键词:view technology.template.template engine.markup.内容较多,按需查用即可. 介绍 Thymeleaf Groovy Markup Template ...
- Spring 4 官方文档学习(十一)Web MVC 框架之配置Spring MVC
内容列表: 启用MVC Java config 或 MVC XML namespace 修改已提供的配置 类型转换和格式化 校验 拦截器 内容协商 View Controllers View Reso ...
- Spring 4 官方文档学习(十一)Web MVC 框架之resolving views 解析视图
接前面的Spring 4 官方文档学习(十一)Web MVC 框架,那篇太长,故另起一篇. 针对web应用的所有的MVC框架,都会提供一种呈现views的方式.Spring提供了view resolv ...
- Spring 4 官方文档学习(十一)Web MVC 框架
介绍Spring Web MVC 框架 Spring Web MVC的特性 其他MVC实现的可插拔性 DispatcherServlet 在WebApplicationContext中的特殊的bean ...
- Spring Boot 官方文档学习(一)入门及使用
个人说明:本文内容都是从为知笔记上复制过来的,样式难免走样,以后再修改吧.另外,本文可以看作官方文档的选择性的翻译(大部分),以及个人使用经验及问题. 其他说明:如果对Spring Boot没有概念, ...
- Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(一)
题外话:本篇是对之前那篇的重排版.并拆分成两篇,免得没了看的兴趣. 前言 在Spring Framework官方文档中,这三者是放到一起讲的,但没有解释为什么放到一起.大概是默认了读者都是有相关经验的 ...
- Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion(二)
接前一篇 Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 本篇主要内容:Spring Type Conver ...
- Spring boot官方文档学习(一)
个人说明:本文内容都是从为知笔记上复制过来的,样式难免走样,以后再修改吧.另外,本文可以看作官方文档的选择性的翻译(大部分),以及个人使用经验及问题. 其他说明:如果对Spring Boot没有概念, ...
- Spring Framework 官方文档学习(四)之Validation、Data Binding、Type Conversion
本篇太乱,请移步: Spring Framework 官方文档学习(四)之Validation.Data Binding.Type Conversion(一) 写了删删了写,反复几次,对自己的描述很不 ...
随机推荐
- javascript Windouw 转自 http://www.cnblogs.com/kissdodog/archive/2013/01/01/2841464.html
javascript之window对象 window :window对象是BOM中所有对象的核心,除了是BOM中所有对象的父对象外,还包含一些窗口控制函数. 1.全局的window对象 JavaScr ...
- C#的自定义滚动条
VS工具箱自带的滚动条,不能设置颜色. 在网上找资源,找到一个控制TextBox的垂直滚动条,链接为http://www.cnblogs.com/2seek/p/4455079.html 在这个的基础 ...
- 42、lucene和机器学习进行全文搜索,并排序
package com.lucene.test; import java.io.BufferedInputStream; import java.io.File; import java.io.Fil ...
- 41、javaMail机制
SMTP 是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议.SMTP 是建立在 TCP上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知. package com.ith ...
- 广东地区电信官方DNS服务器
以下是广东地区电信官方DNS服务器,简单记录,以备后用! 主解析服务器: 202.96.128.143 202.96.128.68 202.105.80.210 缓存服务器(亦可作DNS解析之用) c ...
- Python全栈开发day6
1. 简介 正则表达式本身是一种小型的.高度专业化的编程语言,而在python中,通过内嵌集成re模块,程序媛们可以直接调用来实现正则匹配.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引 ...
- 我的第一个WP8.1应用总结
我的LUMIA925已经买了很久了,想自己开发WP应用放在上面,却一直想不到有什么特别的想法和需要.前几天的事情正好让我有了这个机会. 前几天在客户机房工作的时候,同事打电话来说另一个客户由于换了电脑 ...
- UNIX域套接字(unix domain)
UNIX域套接字用于在同一台机器上运行的进程之间的通信. UNIX域套接字提供流和数据报两种接口. 说明:UNIX域套接字比因特网套接字效率更高.它仅赋值数据:不进行协议处理,如添加或删除网络报头.计 ...
- VSS记住用户名和密码
计算机-属性-高级系统设置-环境变量 新建两个环境变量如下: SSUSER(VSS的用户名) SSPWD(VSS的密码)
- mosquitto_pub和mosquitto_sub 命令参数说明
mosquitto_pub 命令参数说明 1. -d 打印debug信息 2. -f 将指定文件的内容作为发送消息的内容 3. -h 指定要连接的域名 默认为localhost 4. -i ...