Micro Cloud Foundry 为开发者提供自己的个人云

新闻 | Adam Fitzgerald | 2011年8月24日 | ...

今天,VMware 团队发布了 Micro Cloud Foundry,这是广受欢迎的开源平台即服务的一个完整的本地版本,允许开发者在他们的 Mac 或 PC 上运行功能齐全的云。使用 Micro Cloud Foundry,开发者可以在本地构建端到端的云应用,无需配置中间件的麻烦,同时保留部署位置的选择,并能够无需更改一行代码即可扩展其应用。

Micro Cloud Foundry 可作为免费可下载的虚拟机镜像提供,并与适用于 Mac OS X 的 VMware Fusion 以及适用于 Linux 和 Windows 计算机的 VMware Workstation 和 VMware Player(可免费下载)兼容。它提供了简易的安装、设置和虚拟机管理,您只需要一个 Cloud Foundry 账户即可开始使用。

Josh LongSpring 开发者 创建了入门指南,并制作了一个简单的 视频教程

如果您觉得这个演示有用,请务必点赞,并订阅 SpringSourceDev 频道,以获取所有最新演示录像和截屏视频的更新。

Spring Data Graph 1.1.0 发布,支持 Neo4j

版本发布 | Thomas Risberg | 2011年8月19日 | ...

尊敬的 Spring 社区成员:

我们很高兴地宣布,支持 Neo4jSpring Data Graph 项目的第二个版本 (1.1.0.RELEASE) 现已可用!

在 2011 年 4 月 Spring Data Graph 的首次公开发布后,我们主要关注了用户反馈。

通过围绕工具改进 文档 并升级 AspectJ 版本,我们解决了用户报告的许多 AspectJ 问题。使用最新的 STS 和 Eclipse,以及有望支持的 Idea11,现在可以开发没有红色波浪线(错误标记)的 Spring Data Graph 应用程序了。为了进一步简化开发,我们还提供了 ant/ivy 的示例构建脚本和 gradle 插件。

当然,我们跟上了 Neo4j 的开发步伐,目前使用了 Neo4j (1.4.1) 的最新稳定版本。

在 Neo4j 过去几个月的开发中,改进的查询支持(Cypher, Gremlin)是重要方面之一。因此,我们努力在所有层面支持它。现在,可以通过 Spring Data Graph Repositories、Neo4j-Template 执行 Cypher 查询,也可以作为动态字段注解的一部分并通过引入的实体方法执行。Gremlin 脚本也是如此。这种新的表达能力能做些什么呢?让我们来看一下。

例如,在一个 repository 中


	public interface PersonRepository extends GraphRepository, NamedIndexRepository {
	
	    @Query("start team=(%team) match (team)-[:persons]->(member) return member")
	    Iterable findAllTeamMembers(@Param("team") Group team);
	
	    @Query(value = "g.v(team).out('persons')", type = QueryType.Gremlin)
	    Iterable findAllTeamMembersGremlin(@Param("team") Group team);
	}

Neo4j Template API 进行了全面改进,从而方法更少、更专注。高级查询结果处理能力(类型转换、映射、单结果、handler 等)现在使用更流畅的 API 实现。这个新 API 适用于所有类型的查询,无论是索引查找、图遍历、Cypher 查询还是 Gremlin 脚本。


	template.query("start n=(0) match n-->m return m", null).to(Node.class);
template.execute("g.v(0).out", null).to(Node.class);

template.lookup("relationship", "name", "rel1").to(String.class, new PropertyContainerNameConverter()).single();

template.traverse(referenceNode, traversalDescription).handle(new Handler<Path>() {
            public void handle(Path value) {
                final String name = (String) value.endNode().getProperty("name", "");
                resultSet.add(name…

Grails 2.0 倒计时:数据库迁移

工程 | Peter Ledbrook | 2011年8月17日 | ...

Grails 的众多优秀特性之一是它能够根据您的域模型自动为您创建数据库 schema。诚然,这是 Grails 使用的 Hibernate 的一个特性,但它仍然可以帮助您快速开始使用数据库驱动的 web 应用,而无需担心数据库 schema。

一旦您的应用迁移到生产环境会发生什么?在开发过程中,服务器运行之间丢失数据并不是一个大问题。但在生产环境中不能简单地删除数据库。因此,这排除了dbCreate数据源的 "create" 和 "create-drop" 值...

云端聊天:第一部分

工程 | Mark Fisher | 2011年8月16日 | ...

上周,宣布了 RabbitMQ 作为服务在 Cloud Foundry 上可用。 现在,任何运行在 Cloud Foundry 上的应用程序都可以通过 RabbitMQ broker 发送和接收消息,该 broker 可以通过一个简单的命令(例如 'vmc create-service rabbitmq')作为服务进行配置。消息服务的实例可以在应用程序之间共享,并且由于 RabbitMQ 是基于协议的 broker,这些应用程序甚至可以用不同的语言编写。因此,对于那些对运行在云中的模块化、多语言、事件驱动应用程序感兴趣的人来说,这是一个令人兴奋的公告。我将要...

在没有完整 Java EE 的情况下配置 Spring 和 JTA

工程 | Josh Long | 2011年8月15日 | ...

Spring 通过其 PlatformTransactionManager 接口及其实现的层次结构提供了丰富的事务管理支持。Spring 的事务支持为众多 API 的事务语义提供了一致的接口。广义上,事务可以分为两类:本地事务和全局事务。本地事务是指仅影响一个事务资源的事务。通常,这些资源都有自己的事务 API,即使事务的概念并未明确浮现。通常它表现为会话(session)的概念,一个...

SpringSource Tool Suite 2.8.0.M1 发布

版本发布 | Martin Lippert | 2011年8月11日 | ...

尊敬的 Spring 社区成员:

我很高兴地宣布,我们刚刚发布了 SpringSource Tool Suite (STS) 下一个版本的第一个里程碑构建版本。

这个里程碑主要为 Groovy&Grails 开发者带来了一些更新和新功能,包括:

  • 更新到 tc Server Developer Edition 2.5.1
  • 更新到 Maven 3.0.3
  • 更新到 Mylyn 3.6.1
  • 运行在 JDK 1.7.0 上,包括 Spring Roo 1.1.5
  • constructor-arg 的验证和快速修复
  • 支持 Grails 2.0.0.M1
  • 增强的 Grails 2.0.0.M1 DSL 支持
  • 对 Groovy-Eclipse 的大量改进

更多详情可在 2.8.0.M1 的新特性和重要说明 文档中找到。详细的 安装说明 也已提供,请查看从里程碑更新站点进行的安装。

一如既往,可从 STS 下载页面 下载,请查看“其他下载”。

2.8.0.M2 计划在九月下半月发布,随后是...

超越 FactoryBean

工程 | Josh Long | 2011年8月10日 | ...

在我的 上一篇文章 中,我探讨了基本的 FactoryBean 是什么。虽然 FactoryBeans 很重要——了解它们的作用可以帮助您更有效地理解框架——但自 Spring 3.0 和即将发布的 Spring 3.1 以来,它们总体上不再是推荐的任务处理方法。

FactoryBean 的全部意义在于隐藏对象的构建逻辑——可能是因为它非常复杂,或者它不能简单地使用 Spring 容器典型的以构造函数为中心的方法进行实例化(也许它需要查找?也许它需要一个静态注册方法?)。Spring 也支持 XML 格式中的 factory-method 属性。Java 配置方法提供了一个概念上相似(实际上结果相同)的替代方案,但具有更简洁、类型安全的特性。

Spring 3.0 引入了 Java 配置,允许您使用 Java 定义 bean。例如,要在 XML 中使用 Spring 注册一个常规的 javax.sql.DataSource,您很可能会将敏感配置信息(如数据库密码)委托给属性文件,并使用 Spring 来实例化 javax.sql.DataSource,如下所示:


<beans ...>
	<context:property-placeholder location = "ds.properties" />

	<bean id = "ds" class = "a.b.c.MySqlDataSource">
	  <property name = "user" value = "${ds.user}"/>
	  <property name = "password" value = "${ds.password}"/>
	</bean>
</beans>

这是一个简单的 bean,并且可以自然地转化为 Java 配置。它看起来像这样:

 
import a.b.c.* ;
	
@Configuration 
@PropertySource("ds.properties") 
public class MyConfiguration { 
    @Inject private Environment env ; 
	
    @Bean public MySqlDataSource ds(){ 
        MySqlDataSource ds = new MySqlDataSource () ; 
        ds.setUser( env.getProperty("ds.user") );
        ds.setPassword( env.getProperty("ds.password…

什么是 FactoryBean?

工程 | Josh Long | 2011年8月9日 | ...

在这篇文章中,我将探讨 Spring 的 org.springframework.beans.factory.FactoryBean<T> 接口。这个接口的定义如下:


public interface FactoryBean<T> {
  T getObject() throws Exception;
  Class<T> getObjectType();
  boolean isSingleton();
}

FactoryBean 是一种模式,用于在一个类中封装有趣的对象的构建逻辑。例如,它可能用于以可重用的方式编码复杂对象图的构建。这通常用于构建具有许多依赖项的复杂对象。当构建逻辑本身高度易变且依赖于配置时,也可能使用它。FactoryBean 还有助于 Spring 构建它本身难以构建的对象。例如,为了注入从 JNDI 获取的 bean 引用,必须首先获取该引用。您可以使用 JndiFactoryBean 以一致的方式获取此引用。您可以将 FactoryBeangetObject() 方法的结果注入到任何其他属性中。

假设您有一个 Person 类,其定义如下:


public class Person { 
 private Car car ;
 private void setCar(Car car){ this.car = car;  }	
}

以及一个 FactoryBean,其定义如下:


public class MyCarFactoryBean implements FactoryBean<Car>{
  private String make; 
  private int year ;

  public void setMake(String m){ this.make =m ; }

  public void setYear(int y){ this.year = y; }

  public Car getObject(){ 
    // wouldn't be a very useful FactoryBean 
    // if we could simply instantiate the object…

视频:Adrian Colyer 探讨 2011 年及以后的企业应用

新闻 | Adam Fitzgerald | 2011年8月8日 | ...

Adrian Colyer Talks about the Future of Enterprise Development

五月份在巴黎举行的 What's Next 大会是法国有史以来规模最大的 Java 活动之一,激发了充满活力的法国开发者社区。它汇聚了来自世界各地的许多最重要的 Java 专家,从高层次讨论 Java 平台周边重要的新兴技术。

SpringSource 的 Adrian Colyer 有机会向观众发表演讲,他讨论了 云计算的当前趋势,特别提到了 PaaS 以及 Cloud Foundry,并着重探讨了 PaaS 如何影响企业应用的設計和开发。

非常感谢 InfoQ,他们到场并录制了本次演讲。

本周 Spring 动态:2011年8月2日

工程 | Josh Long | 2011年8月3日 | ...

欢迎来到新一期的“本周 Spring 动态”。八月已经过半,很快,在八月底,VMworld 2011 将到来。不久之后,SpringOne 也会如期举行。事情会很快变得热火朝天,所以准备好!本周的“本周 Spring 动态”有很多有趣的内容来自 Chariot Solutions 的 Gordon Dickens。谢谢 Gordon 提供了这么多好文章!

  1. Spring 的创始人兼思想领袖 Rod Johnson 今年早些时候在 TheServerSide 发表了主旨演讲。这篇文章 转载了该主旨演讲的部分内容,包括他对云计算、SOA 等的看法。快看看吧。
  2. <LI> 
    	The video of the recent webinar, "<A href="http://www.springsource.org/node/3194">What's New in Apache Tomcat 7</a>," is now available on the <a href="http://www.youtube.com/SpringSourceDev">SpringSourceDev YouTube channel</a>.   
    </LI> 
    <LI>Luke Taylor has some great content on how to <a href="http://blog.springsource.com/2011/08/01/spring-security-configuration-with-scala/">configure Spring Security with the Scala DSL</a> he's been developing. Check it out! 
    </LI> 
    <LI> 
    	<a href= "http://www.springsource.org/node/3192">Spring Data JDBC Extensions with Oracle Database Support</a>…

获取 Spring 通讯

通过 Spring 通讯保持联系

订阅

先行一步

VMware 提供培训和认证,助力您的快速进步。

了解更多

获取支持

Tanzu Spring 通过一个简单的订阅,提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将到来的活动

查看 Spring 社区所有即将到来的活动。

查看全部