《Spring官方文档1》17 使用 O/X(Object/XML)映射器对XML进行编组

17 使用 O/X(Object/XML)映射器对XML进行编组

17.1 简介

本章将讨论 Spring 对于 对象/XML 映射的支持。对象/XML 映射,或 O/X 映射,是指将 XML 文档与 XML 文档对象进行互相转换的操作。这一转换操作也被称作 XML 编组,或 XML 序列化。在本章中,这几个概念都指的是同一个东西。 在 O/X 映射中,将一组对象序列化为 XML 的操作是由一个编组器负责的。与之相对,一个反编组器则被用于将 XML 反序列化为一组对象。而这些操作中的 XML 文件来源可能是一份 DOM 文档,一个输入/输出流,或一个 SAX 管理器。 使用 Spring 提供的支持来实现你的 O/X 映射需求具有如下一些好处:

Read more

《Spring 5 官方文档》20. CORS 支持

原文链接 译者:dan  QQ:903585177

20. CORS 支持

20.1 简介

出于安全考虑,浏览器禁止AJAX调用驻留在当前来源之外的资源。 例如,当您在一个标签中检查您的银行帐户时,您可以在另一个标签中打开evil.com网站。 evil.com的脚本不能使用您的凭据向您的银行API发出AJAX请求(例如,从您的帐户中提款)!

Cross-origin resource sharing (CORS) 是 大多数浏览器实现的W3C 规范,允许您以灵活的方式指定什么样的跨域请求被授权,而不是使用一些较不安全和不太强大的黑客工具(如IFRAME或JSONP)。

Read more

《Spring 5官方文档》-JMX

27.1 引言

Spring对JMX的支持提供了你可以简单、透明的将Spring应用程序集成到JMX的基础架构中。

JMX?
        
本章不是介绍JMX的...它不会试图去解释为什么要使用JMX(或JMX实际代表什么含义)的动机。如果你是JMX的新手,请参考本章末尾的[第27.8节,更多资源](jmx.html#jmx-resources)。

具体来说,Spring JMX支持提供了四个核心功能:

  • 任何Spring bean都会自动注册为JMX MBean
  • bean管理接口的灵活控制机制
  • 可以通过JSR-160连接器将声明的MBeans暴露给远程
  • 远程和本地MBean资源的简单代理

这个功能的设计是应用程序组件在和Spring或JMX接口和类无需耦合的方式工作。事实上,在大多数情况下应用程序为了使用Spring JMX的特性,也不会去关心Spring或者JMX。

Read more

《Kafka官方文档》实现

1. API Design

Producer APIs

Producer API封装了底层两个Producer:

  • kafka.producer.SyncProducer
  • kafka.producer.async.AsyncProducer

Read more

《Maven官方指南》30分钟入门

原文链接     译者:carvendy

Maven 入门指南

这个指南预期是作为使用第一次使用Maven工作的,但是也预期服务作为一个单独的引用和常用的解决方案用例。对第一次的用户,这推荐你按顺序一步一步来看材料。对于熟悉Maven的用户,指南努力地提供需要的快速方案。假设你已经下载了Maven和安装好Maven在你本地机器。如果你这样做请参考下载与安装的指令。

好,你现在已经安装好Maven了和我们准备开始。在我们今天例子之前,我们将简要过一遍什么是Maven和它能怎么帮助你处理日常工作并和你团队成员一起协助。Maven将,当然,为了小项目工作,但是Maven表现突出在帮助团队有效操作并允许团队成员着眼于项目需要什么相关者。你可以把构建的事项交给Maven。

Read more

《Spring 5 官方文档》21. 与其他Web框架集成

原文链接 译者:dan  QQ:903585177

21. 与其他Web框架集成

21.1 简介

Spring Web Flow

Spring Web Flow (SWF) 旨在成为管理Web应用程序页面流的最佳解决方案。

SWF与Servlet和Portlet环境中的Spring MVC和JSF等现有框架集成。 如果您有一个业务流程(或流程)将受益于会话模型而不是纯粹的请求模型,则SWF可能是解决方案。

SWF允许您将逻辑页面流作为在不同情况下可重用的自包含模块捕获,因此非常适合构建引导用户通过驱动业务流程的受控导航的Web应用程序模块。

Read more

《Maven官方指南》标准目录结构

原文链接     译者:carvendy

介绍标准目录结构

有一个公共的目录结构考虑到用户对一个Maven项目能马上找到家的感觉就算在另外一个Maven项目。这个好处是类似于网站范围内的外观和感觉。

下一个选项文档目录结构为Maven的预期和目录结构油Maven创建。请尽可能地尝试确认这个结构。无论如何,你不能设置那些由项目描述符重写的。

Read more

《阿里感悟》-能力和晋升

晋升是一个水到渠成的过程,能力到了自动就能晋升(这个能力是指综合能力,而不但指技术能力),能力没到晋升上去也会很累。所以需要努力突破自己,超越本层级的能力,并创造当前层级的人创造不出来的价值。晋升意味着对自己更高的要求,更高的责任和更多的思考。 Read more

《Maven官方指南》设置多仓库

原文链接     译者:carvendy

设置多仓库

这里有两个不同的方式让你可以指定多仓库。第一种方式是在pom中指定你想要使用的仓库: Read more

《阿里感悟》- 提高执行力

什么是执行力

百度上对于执行力的定义如下,有效利用资源、保质保量达成目标的能力。是一种把行动变成结果的能力。通俗来讲就是,老板布置了一个任务,无论多么麻烦,多么没时间,都要想办法利用各种资源完成它,而不是找各种理由和借口,要有强烈的把事情做成的决心。老板要的是结果,而不是抱怨和过程。

Read more

《Spring官方文档》IoC容器(1-2)

原文链接  译者:kl2422

3.1 Spring IoC容器和beans的介绍

本章涵盖了Spring框架实现控制反转(IoC)[1]的原理。IoC又叫依赖注入(DI)。它描述了对象的定义和依赖的一个过程,也就是说,依赖的对象通过构造参数、工厂方法参数或者属性注入,当对象实例化后依赖的对象才被创建,当创建bean后容器注入这些依赖对象。这个过程基本上是反向的,因此命名为控制反转(IoC),它通过直接使用构造类来控制实例化,或者定义它们之间的依赖关系,或者类似于服务定位模式的一种机制。

Read more

《Maven官方指南》使用工具链指南

原文链接  译者:carvendy

使用工具链指南

什么是工具链?

Maven 工具链提供了一种当他们构建的时候需要时候插件发现使用jdk(或者别的工具),而不需要配置他们在每一个pom.xml中,或者强制给出精确的路径在每个构建的机器上。

有了maven工具链申请JDK工具链,一个项目可以在构建的时候被指定一个版本的jdk依赖maven正使用的JDK。想一想JDK能怎么设置到IDE类似IDEA,NetBean和eclipse,或者你能怎么从Maven构建使用的JDK中使用老的JDK编译。

Read more

阿里感悟 – 如何成为一名优秀的新人

成为一名优秀的新人,我认为要做到三点:良好的心态,积极的思考和高效的学习。

Read more

《Maven官方文档》插件前缀解析策略

原文链接  译者:carvendy

插件前缀解析策略

当你执行maven的时候使用一个标准的生命周期,这些插件参与的生命周期就像是一个相当简单的进程。无论如何,当你从命令行中引用一个指令,例如clean,Maven必须有一些可靠的方式让clean插件前缀为maven-clean-plugin。这提供了简洁的命令行调用,当保存这些描述性的插件的真实工件id。

对于很多复杂性的问题,不是所有插件应该被强制使用同样的组id(在仓库中)。从这些组id在一个项目中假定被控制,和对于Maven多个项目可能使用的插件,它跟随着插件前缀匹配必须容纳多个插件组id。 对于地址关系,Maven提供了一块新的的仓库级别元数据(与任何单一的工件无关)对于插件组来说,在一个插件匹配管理者来组织多个插件组合提供功能性的搜索。

指定的插件前缀

为了给使用者方便的前缀去引用你的插件,一个前缀必须与你的插件相关在构建的时候。在默认的情况下,Maven将令一个猜想的前缀被使用,被移除任何被“maven”或者“plugin”的连字符在这些插件的工件id。方便的工件id格式被定为:

  • maven-${prefix}-plugin – 官方Apahe团队的插件(你不必使用这些命名的规则作为你的插件,看看更多的信息
  • ${prefix}-maven-plugin – 其他来源的插件。

如果你的插件工件id符合这个规则,Maven将会根据元数据中正确的前缀自动匹配你插件的组id在仓库中的路径。无论如何,如果你想自定义前缀来引用的你插件,你可以指定前缀来引导通过配置参数在maven-plugin-plugin在你的pom中:

<project>
  ...
  <build>
    ...
    <plugins>
      ...
      <plugin>
        <artifactId>maven-plugin-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          ...
          <goalPrefix>somePrefix</goalPrefix>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

以上的配置讲允许使用者引用你的插件通过前缀somePrefix,作为一个例子:

mvn somePrefix:goal

匹配前缀插件

对于每一个组id配置是为了搜索,Maven将:

  1. 从每一个远程仓库下载maven-metadata.xml到本地仓库,和命名为maven-metadata-${repoId}.xml 在内部使用 ${groupId}路径。
  2. 加载元数据文件,在maven-metadata-local.xml(如果存在)中,在内部使用 ${groupId}路径。合并它们。
  3. 发现插件前缀在合并元数据。如果它匹配,它应该引用一个具体的组和工件对。否则,继续在用户插件组中找下一个组id。 这些元数据文件组成的组(为了清晰当这些文件被大块在容器之外的目录),和一个组的插件节点。

在列表中每个插件包含一个前缀节点表示插件的命令行前缀,和一个工件节点, 提供的前缀映射对方提供了足够的信息来查找和使用插入部件。当一个插件被安装和发布,适当的元数据文件被放置和如果前缀匹配丢失了,修改前缀匹配。

配置Maven查找插件

默认情况下,maven将搜索组id org.apache.maven.plugins 为了前缀工件匹配插件,它需要在构建过程中执行。无论如何,前面提到的,使用者可能需要一个第三方的插件。从Maven项目被假定有控制的默认插件组,这意味着配置maven来搜索其他组的位置为了插件前缀匹配。

这很简单。在Maven配置文件(当前用户:${user.home}/.m2/settings.xml; 全局:${maven.home}/conf/settings.xml),你可以提供一个自定义的插件组项目,列出你想要搜索的插件(每个都在自己的plugingroup GroupID的子元素)。作为例子,如果我的项目使用了一个 模板文件,我可以设置:

<pluginGroups>
  <pluginGroup>org.codehaus.modello</pluginGroup>
</pluginGroups>

这使我能够执行以下,这将从模式生成java类:

mvn -Dversion=4.0.0 -Dmodel=maven.mdo modello:java

Maven会搜索以下GroupID的搜索后,在用户设置中指定的任何插件组:

  • org.apache.maven.plugins
  • org.codehaus.mojo

注意:当指定被使用的插件组在搜索的前缀匹配中,秩序是关键!被指定的一个插件组 com.myco.plugins有一个前缀clean,我可以覆盖maven-clean-plugin的时候,当clean:clean被调用的时候。 笔记2:想了解更多信息可以查看 settings.xml

资源

maven配置指南

《Maven官方指南》jdk1.4项目使用JDK1.5构建指南

原文链接  译者:carvendy

jdk1.4项目使用JDK1.5构建指南

你自从Maven 2.2.0 需要 JDK 1.5 来执行,很多用户他们的项目依然使用java 1.4或者更老的版本,他们将需要做一些调整。 理想的情况下,你可以通过使用JDK 1.4编译和测试来解决这个问题,提供适当的工具链配置。无论如何,当前版本编译插件(2.0.2)不是工具链能做的,所以构建一个妥当的构建使用 Maven 2.2.0来构建java面板,比1.5还要老的需要更多其他的配置。 Read more

return top