本部分覆盖了以下内容:

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


使用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库。

该库是免费的,可以在网上获取到。使用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

Spring 4 官方文档学习 Spring与Java EE技术的集成的更多相关文章

  1. Spring 4 官方文档学习(十二)View技术

    关键词:view technology.template.template engine.markup.内容较多,按需查用即可. 介绍 Thymeleaf Groovy Markup Template ...

  2. Spring 4 官方文档学习(十一)Web MVC 框架之配置Spring MVC

    内容列表: 启用MVC Java config 或 MVC XML namespace 修改已提供的配置 类型转换和格式化 校验 拦截器 内容协商 View Controllers View Reso ...

  3. Spring 4 官方文档学习(十一)Web MVC 框架之resolving views 解析视图

    接前面的Spring 4 官方文档学习(十一)Web MVC 框架,那篇太长,故另起一篇. 针对web应用的所有的MVC框架,都会提供一种呈现views的方式.Spring提供了view resolv ...

  4. Spring 4 官方文档学习(十一)Web MVC 框架

    介绍Spring Web MVC 框架 Spring Web MVC的特性 其他MVC实现的可插拔性 DispatcherServlet 在WebApplicationContext中的特殊的bean ...

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

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

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

    题外话:本篇是对之前那篇的重排版.并拆分成两篇,免得没了看的兴趣. 前言 在Spring Framework官方文档中,这三者是放到一起讲的,但没有解释为什么放到一起.大概是默认了读者都是有相关经验的 ...

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

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

  8. Spring boot官方文档学习(一)

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

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

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

随机推荐

  1. Hsqldb安装与使用

    HSQLDB是一个轻量级的纯Java开发的开放源代码的关系数据库系统,其体积小,占用空间小,使用简单,支持内存运行方式等特点.可以在http://sourceforge.net/projects/hs ...

  2. Set,List,Map,Vector,ArrayList的区别(转)

    JAVA的容器---List,Map,Set Collection ├List │├LinkedList │├ArrayList │└Vector │ └Stack └Set Map ├Hashtab ...

  3. DataTable自定义排序

    使用JQ DataTable 的时候,希望某列数据可以进行自定义排序,操作如下:(以中文排序和百分比排序为例) 1:定义排序类型: //百分率排序 jQuery.fn.dataTableExt.oSo ...

  4. vim命令的妙用

    进来看到了一篇博文,讲述的是无插件Vim编程技巧,然后看到里面还有一些其余的关于vim的博文,感觉值得收藏:酷 壳 – CoolShell.cn 这里挑选出其中一篇,这也是自己已经学习过的: 无插件V ...

  5. 8天掌握EF的Code First开发系列之3 管理数据库创建,填充种子数据以及LINQ操作详解

    本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 管理数据库创建 管理数据库连接 管理数据库初始化 填充种子数据 LINQ to Entities详解 什么是LI ...

  6. 第四章ContentProvider

    No resource found that matches the given name 'Theme.AppCompat.Light'.

  7. java打包成jar,但不打包配置文件

    有时候我们做java project的时候,都会打包成jar程序,为了方便部署会加个配置文件conf/pro.properties(conf文件夹与src文件夹同级) 但是不想打包进jar.其实用ec ...

  8. ruby 简介

    Ruby 是一个注重均衡的语言,它的发明者松本行弘 Yukihiro “Matz” Matsumoto,混合了他喜欢的语言(Perl. Smalltalk. Eiffel. Ada 和 Lisp ) ...

  9. 介绍一款非常适合做微网站并且免费的CMS系统

    在微网站火热的今天,寻找一款具备 web app功能的CMS系统能够大大提高我们的工作效率,eBSite升级到3.0后,开始支持web app 皮肤,也就是创建一个站点,会同时绑定一个PC版皮肤与一个 ...

  10. python数据统计,总数,平均值等

    一般我们进行数据统计的时候要进行数据摸查,可能是摸查整体的分布情况啊.平均值,标准差,总数,各分段的人数啊.这时候用excel或者数据库统计都不方便. 我要统计的一个文件,太大了,还得分成15个文件, ...