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 Statemachine 1.0.0.RC1 发布

发布 | Janne Valkealahti | 2015年9月1日 | ...

我们很高兴地宣布 Spring Statemachine 1.0.0.RC1 的第一个候选版本。

此版本的重点是使核心框架更加稳定,并最终为分布式状态机添加 jepsen 测试。我们还添加了测试支持的第一个版本。已解决的 github 票证可以从 RC1 问题 中找到。我们离发布正式版相对较近,这意味着如果没有任何重大问题出现,下一个版本将是 1.0.0.RELEASE。如果出现紧急情况,我们将发布 1.0.0.RC2 然后再发布正式版。

既然我们已经在这里,让我们开始吧,看看此版本有哪些新功能。

超越…

Spring Data 发布列车 Gosling 正式发布

发布 | Oliver Drotbohm | 2015年9月1日 | ...

我代表 Spring Data 团队宣布 Spring Data 发布列车 Gosling 正式发布。在过去的 6 个月里,我们总共修复了 344 个工单,其中 56 个 是在最新发布候选版本之后修复的。

  • 将 Spring 基线升级到 4.1。
  • 更易于实现自定义存储库代码(每个存储库,请参阅 参考文档)。
  • 改进了与 Hibernate 5 的兼容性(JPA 模块)。
  • MongoDB 中 @Query 方法的 SpEl 支持(请参阅此 示例)。
  • 支持从 Web 请求创建 Querydsl Predicates(请参阅 参考文档)。
  • 一个 新的 Spring Data KeyValue 模块,用于使用 SpEL 作为查询语言的 Map 支持的存储库。
  • 改进了 Spring Data REST 中 HAL 浏览器的 POST 表单。
  • 支持 Spring Data REST 中枚举值和链接标题的国际化。

本周 Spring - 2015年9月1日

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

欢迎来到另一期《本周 Spring》!Spring 团队正在努力开发所有最新最好的功能,以迎接在华盛顿特区的 SpringOne2GX 活动!时间过得快!我无法相信我们已经迎来了 9 月!本周我在日本东京参加 Spring 用户组的大型夏季 Spring 活动,在那里我 发表了主题演讲 并进行了两次演讲,分别介绍了 Spring Boot 和 Spring Cloud。为期一天的活动吸引了一些公司最大的网站,并且非常有趣

无论如何,让我们言归正传!

Spring Framework 4.2.1 现已推出

发布 | Stéphane Nicoll | 2015年9月1日 | ...

我很高兴地宣布 Spring Framework 4.2.1 现已在 repo.spring.io 和 Maven Central 上提供。此 4.2 系列中的第一个维护版本包含针对 4.2 GA 报告的 大量回归和其他问题的修复

4.2.1 还包含一些小的增强功能:改进了我们的 Jackson 支持(请参阅 Sébastien 的更新博客文章)、元注解处理改进(@AliasFor)、第三方依赖项对齐(包括 Hibernate 5.0 GA)。

我们强烈建议所有 4.x 用户立即升级到 4.2.1。Spring Framework 团队目前正在努力…

本周 Spring - 2015年8月25日

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

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

团队对今年的 SpringOne2GX 2016 充满了期待,这是有史以来规模最大、最棒的 SpringOne2GX!今年,你将看到我们用更少的资源做更多的事情,并将其快速部署到生产环境!这对我们每个人来说都是令人兴奋的,对于观众来说也是如此!

Spring for Apache Hadoop 2.3 里程碑版本 2 发布

发布 | Thomas Risberg | 2015 年 8 月 20 日 | ...

我们很高兴地宣布 Spring for Apache Hadoop 2.3 M2 里程碑版本发布。

此版本中最重要的增强功能

  • 新的批处理任务:支持运行简单的 Spark 应用程序 [SHDP-397] 和运行简单的 Sqoop2 作业 [SHDP-506]
  • 更好的 Boot 支持:为 Boot 配置添加 jobHistoryAddress 到 SpringHadoopProperties [SHDP-517]
  • YARN:支持 yarn 容器组名称中的点 [SHDP-515]

请参阅发布 更改日志 以获取详细信息。

通过 Spring Batch 任务在 YARN 上运行 Spark 作业的新支持为在更大的 Spring Batch 流程中集成 Spark 任务提供了可能性。我们将在即将举行的 SpringOne 2GX 大会上,在我们的 "使用 Spring 技术的 Hadoop 工作流和分布式 YARN 应用程序"… 中展示一个简单的示例。

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

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

作者说明

这篇文章是由 Han LimTony Nguyen 撰写的客座文章。Han 和 Tony 在我们的新加坡 Spring 用户组上做了一个关于 Spring + Angular JS 的精彩演示。这篇博客文章基于他们的演示文稿。

摘要

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

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看全部