从 Grails 使用 Micro Cloud Foundry

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

早在四月份,VMware 就向世界推出了 Cloud Foundry,随之而来的是针对 Grails 开发人员的超简单应用程序部署。快进几个月,现在拼图的另一块已经到位:Micro Cloud Foundry。您现在可以拥有自己的 Cloud Foundry 实例,用于测试或任何其他用例。当然,从 Grails 使用它也非常简单。

那么 Micro Cloud Foundry 是什么?下面的截屏视频简要概述了该产品,然后带您了解其下载、安装和配置过程。最后,您将看到如何…

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 代理发送和接收消息,该代理可以通过单个命令(例如 'vmc create-service rabbitmq')作为服务进行配置。消息服务实例可以在应用程序之间共享,并且由于 RabbitMQ 是一个基于协议的代理,这些应用程序甚至可以用不同的语言编写。因此,对于那些对在云中运行的模块化、多语言、事件驱动应用程序感兴趣的人来说,这是一个令人兴奋的公告。我将…

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

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

Spring 通过其 PlatformTransactionManager 接口及其一系列实现,为事务管理提供了丰富的支持。Spring 的事务支持为众多 API 的事务语义提供了一个一致的接口。广义上,事务可分为两类:局部事务和全局事务。局部事务是指仅影响一个事务资源的事务。大多数情况下,这些资源都有自己的事务 API,即使事务的概念没有被明确暴露。通常它会以会话的概念暴露出来,一个…

超越 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 中将一个普通的 javax.sql.DataSource 注册到 Spring,你很可能会委托给一个属性文件来获取敏感的配置信息(如数据库密码),然后使用 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…

本周 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>…

调试 DSLD 脚本

工程 | Andrew Eisenberg | 2011年8月2日 | ...

不久前,我为 Groovy-Eclipse 引入了 DSL 描述符 (DSLDs)。DSLDs 是 Groovy 脚本,为 Eclipse 工作区中的 Groovy 项目提供丰富的编辑支持(内容辅助、导航等)。由于 DSLDs 只能在运行中的 Eclipse 进程中执行,因此调试不像启动 Eclipse 调试器并逐步执行 Groovy 脚本那么简单。在这篇文章中,我将描述一些可用于调试 DSLD 的简单和更复杂的技术。

要使所有这些工作,您需要最新的开发版本

简单而粗糙

调试 DSLD 最简单和最粗糙的方法是使用 println。这会将表达式打印到正在运行的 Eclipse 进程的标准输出,如果您从命令行启动 Eclipse,则可以看到。但是,我建议改用 log 语句。这会将日志信息打印到 Groovy 事件控制台……

Spring Security 与 Scala 配置

工程 | Luke Taylor | 2011年08月01日 | ...

在之前的文章Spring Security 命名空间背后中,我谈到了 Spring Security 命名空间在提供简单替代方案方面非常成功,能够替代普通的 Spring bean 配置,但是当您想要开始自定义其行为时,仍然存在陡峭的学习曲线。在 XML 元素和属性背后,各种过滤器和辅助策略被创建并连接在一起,但是,除了阅读处理 XML 解析的代码之外,没有简单的方法可以弄清楚涉及哪些类以及它们如何交互的细节。

一段时间以来,我们一直试图提出一种替代的基于 Java 的解决方案,使用Spring 的 @Configuration,该方案既能保持 XML 命名空间的简洁性,又能使底层行为更加透明且更易于定制。虽然理论上可行,但没有基于 Java 的解决方案似乎能满足……

微调 Spring Data 仓库

工程 | Oliver Drotbohm | 2011 年 7 月 27 日 | ...

距离我们发布 Spring Data JPA 1.0 GA 仅几天时间,这是 Spring Data 项目的第一个主要版本,它在我们的 Spring Data Commons 模块中包含了存储库抽象的实现。存储库抽象包含三个主要部分:定义存储库接口、公开 CRUD 方法和添加查询方法。添加查询方法在第一篇 Spring Data JPA 博客文章中已详细讨论。但定义存储库接口和公开 CRUD 方法在之前的博客文章中引起了不少问题。因此,我们将有一个…

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

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

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有