本周 Spring - 2015 年 9 月 8 日

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

欢迎来到另一期《本周 Spring》!本周我离开了日本东京,来到了中国上海,与几家大型初创公司(包括饿了么,一家在竞争激烈的中国市场中占据主导地位的食品配送服务和应用,每天处理超过 200 万订单)进行了交流,讨论了使用 Spring Boot、Spring Cloud 和 Cloud Foundry 构建云原生应用程序!明天,我将前往挪威奥斯陆,参加精彩的 JavaZone 会议。我非常喜欢这个会议,但在过去的两年里,由于它与 SpringOne2GX 同时举行,我一直没能参加……

Spring REST Docs 1.0.0.RC1

工程 | Andy Wilkinson | 2015 年 9 月 8 日 | ...

我很高兴地宣布Spring REST Docs 1.0.0.RC1 已经发布,可以在我们的里程碑存储库中获取。

如果您想查看使用 Spring REST Docs 可以生成的一些示例,请查看示例文档

新增功能

入门…

Spring Data Gosling 版本中的新增功能?

工程 | Christoph Strobl | 2015 年 9 月 4 日 | ...

在 12 个项目中修复了 300 多个问题,这使得很难跟踪自上次发布以来发生了什么。因此,以下是我们在上次迭代期间一直在开发的一些新功能的更详细摘录。

JPA 即席获取图。

自 Dijkstra 发布以来,我们已经能够通过 JPA 支持的存储库中 @EntityGraph 注解中声明的命名实体图来引用它。在下面的示例中,这将强制 firstname 和 lastname 积极加载,而所有其他字段保持延迟加载。

@Entity
@NamedEntityGraphs(
  @NamedEntityGraph(name…

React.js 和 Spring Data REST:第 1 部分 - 基本功能

工程 | Greg L. Turnquist | 2015 年 9 月 1 日 | ...
要查看此代码的更新,请访问我们的React.js 和 Spring Data REST 教程

欢迎来到 Spring 社区,

这是几篇博文中的第一篇。在本节中,您将了解如何快速启动并运行一个基本的 Spring Data REST 应用程序。然后,您将使用 Facebook 的 React.js 工具集在其之上构建一个简单的 UI。

步骤 0 - 设置您的环境

随时从该存储库中获取代码并继续学习。

如果您想自己动手,请访问http://start.spring.io 并选择以下项目

  • Rest 存储库
  • Thymeleaf
  • JPA
  • H2

此演示使用 Java 8、Maven 项目和 Spring Boot 的最新稳定版本。这将为您提供一个干净的空项目。从那里,您可以添加本节中明确显示的各种文件,或者借鉴上面列出的存储库中的文件。

起初…

起初,有数据。它是美好的。但后来人们希望通过各种方式访问数据。多年来,人们拼凑了许多 MVC 控制器,许多控制器使用了 Spring 强大的 REST 支持。但是一次又一次地重复操作花费了大量时间。

Spring Data REST 解决了如果做出一些假设,这个问题可以有多简单

  • 开发人员使用支持存储库模型的 Spring Data 项目。
  • 系统使用公认的行业标准协议,如 HTTP 动词、标准化媒体类型和 IANA 批准的链接名称。

声明您的域

任何基于 Spring Data REST 的应用程序的基石都是域对象。在本节中,您将构建一个应用程序来跟踪公司的员工。通过创建如下数据类型来启动它

src/main/java/com/greglturnquist/payroll/Employee.java
@Data
@Entity
public class Employee {
private @Id @GeneratedValue Long id;
private String firstName;
private String lastName;
private String description;

private Employee() {}

public Employee(String firstName, String lastName, String description) {
	this.firstName = firstName;
	this.lastName = lastName;
	this.description = description;
}

}

  • @Entity 是一个 JPA 注解,表示整个类存储在关系表中。
  • @Id@GeneratedValue 是 JPA 注解,用于表示主键以及在需要时自动生成主键。
  • @Data@RequiredArgsConstructor 是 Project Lombok 注解,用于自动生成 getter、setter、构造函数、toString、hash、equals 等。它减少了样板代码。

此实体用于跟踪员工信息。在这种情况下,是他们的姓名和职位描述。

注意
Spring Data REST 不仅限于 JPA。它支持许多 NoSQL 数据存储,但这里不会介绍这些。

定义存储库

Spring Data REST 应用程序的另一个关键部分是创建相应的存储库定义。

src/main/java/com/greglturnquist/payroll/EmployeeRepository.java
public interface EmployeeRepository extends CrudRepository<Employee, Long> {

}

  • 存储库扩展 Spring Data Commons 的 CrudRepository 并插入域对象的类型及其主键

这已经足够了!事实上,如果它位于顶层且可见,您甚至不必注释它。如果您使用您的 IDE 并打开 CrudRepository,您会发现已经定义了大量预构建的方法。

注意
如果您愿意,可以定义您自己的存储库。Spring Data REST 也支持这一点。

预加载演示

要使用此应用程序,您需要使用如下数据预加载它

src/main/java/com/greglturnquist/payroll/DatabaseLoader.java
@Component
public class DatabaseLoader implements CommandLineRunner {
private final EmployeeRepository repository;

@Autowired
public DatabaseLoader(EmployeeRepository repository) {
	this.repository = repository;
}

@Override
public void run(String... strings) throws Exception {
	this.repository.save(new Employee("Frodo", "Baggins…

本周 Spring - 2015 年 9 月 1 日

工程 | Josh Long | 2015 年 9 月 1 日 | ...

欢迎来到另一期《本周 Spring》!Spring 团队正在努力完成所有最新和最棒的功能,为在华盛顿特区举行的 SpringOne2GX 活动做准备!时间过得真快!我简直难以置信,我们已经步入 9 月了!本周我在日本东京参加了 Spring 用户组的大型“夏日 Spring”活动,并在其中发表了主题演讲和两场关于 Spring Boot 和 Spring Cloud 的演讲。这场为期一天的活动吸引了一些公司最大的网站,非常有趣!

总之,让我们言归正传!

本周 Spring - 2015 年 8 月 25 日

工程 | Josh Long | 2015 年 8 月 25 日 | ...

欢迎来到另一期《本周 Spring》!本周我将在巴西里约热内卢参加可爱的 QCon Rio 会议,然后前往日本东京参加当地 Spring 用户的“夏日 Spring”大会!

团队对今年的 SpringOne2GX 2016 充满期待,这是有史以来最大、最好的 SpringOne2GX!今年,您将看到我们用更少的资源做更多的事情,并将成果投入生产!这对我们每个人来说都是令人兴奋的,对观众来说也是如此!

将 Spring Web MVC 应用程序从 JSP 迁移到 AngularJS

工程 | Michael Isvy | 2015 年 8 月 19 日

| ...

作者说明

这篇文章是由韩林Tony Nguyen撰写的客座文章。韩林和Tony在我们的新加坡春季用户组上做了一个关于Spring + Angular JS 的精彩演讲。这篇博客文章基于他们的演讲内容。

摘要

在这篇文章中,我们尝试描述我们从服务器端渲染视图技术(如JSP、Struts和Velocity)转向客户端渲染视图技术(使用AngularJS,一个流行的现代浏览器JavaScript框架)的经验。我们将讨论在进行此更改时需要注意的一些事项以及您可能遇到的潜在陷阱。如果……

本周Spring - 2015年8月18日

工程 | Josh Long | 2015 年 8 月 19 日

| ...

欢迎来到另一期《本周Spring》!像往常一样,我们有很多内容要涵盖,所以让我们开始吧!本周我回到了巴西圣保罗,拜访客户,然后前往里约热内卢参加QCon Rio!如果您在这两个城市中的任何一个,请在Twitter上给我发消息并让我们一起喝杯咖啡

  • 今天,Pivotal首席执行官Paul Maritz辞去了职务[并欢迎Pivotal Labs创始人Rob Mee担任新任首席执行官。Paul和Rob分别发表了文章:Paul的文章Rob的文章。感谢Paul,欢迎Rob!
  • 优秀的Scott Frederick刚刚宣布了Spring Cloud Connectors 1.2.0的正式发布! - 请查看!
  • Spring专家Stéphane Nicoll刚刚宣布了Spring Boot 1.3M4,并包含大量修复和改进
  • Spring Integration负责人Gary Russell刚刚宣布了一个内容丰富的Spring Integration 4.2版本,其中包括但不限于:对安全上下文传播的支持、STOMP客户端通道适配器、指标、新的Spring Framework 4.2事件通道适配器、进程屏障组件、最后修改文件列表过滤器、编解码器、JMS共享订阅、(S)FTP改进、SOAP操作传播,……

本周Spring - 2015年8月11日

工程 | Josh Long | 2015年8月12日 | ...

欢迎来到另一期《本周Spring》!像往常一样,我们有很多内容要涵盖,所以让我们开始吧!

Spring Statemachine 1.0.0.M3发布

工程 | Janne Valkealahti | 2015年8月4日 | ...

我们很高兴地宣布Spring Statemachine 1.0.0.M3的第三个里程碑版本。

自上一个里程碑版本以来发生了很多事情,并且达到这一步花费的时间比我们最初估计的要长一些。既然我们已经到了这里,让我们仔细看看这个版本有哪些新功能。

除了通常的错误修复之外,以下列出了主要的新功能

  • 分布式状态机
  • 持久化状态机上下文
  • 放松对枚举作为状态和事件的使用
  • 状态机的编程实例化
  • 新的配方模块
  • 新的示例(持久化、ZooKeeper、Web)

#分布式状态机

分布式状态是一个新的……

获取Spring新闻

通过Spring新闻保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看全部