声明
- 本文的内容仅限于技术探讨,不能作为指导生产环境的素材;
- 鼓励读者购买红帽培训获得更多系统性的培训。
- 由于篇幅有限,文章中的步骤仅展现了关键的部分。
在本实验中,将进行Spring Data与JPA一起使用来检索数据并将其保存到数据存储区。
启动JBoss Developer Studio。
选择文件→导入。
在“导入”对话框中,选择“Maven”→“现有Maven项目”,然后单击“下一步”。
单击“浏览”并导航到〜/ appmod_foundations_training / spring / lab2。
导入后,请验证您是否看到product-catalog-lab2项目:
用于测试的Bootstrap JPA和H2数据库
打开Maven pom.xml文件。
打开src / main / resources / application.properties文件。
将以下条目添加到此文件,这是应用连接数数据路的参数配置:
创建单元测试
在本节中,您将为ProductCatalogService创建单元测试。
在JBoss Developer Studio中,导航到项目目录并选择src / test / java。
展开com.redhat.coolstore.productcatalog包。
创建名为ProductCatalogJPATests的JPA Test类。
添加以下代码:
虽然此测试本身不测试任何内容,但@DataJpaTest会引导JPA环境,因此如果测试成功运行,您就会知道JPA环境已正确配置并正常工作。
测试JPA bootstraps是否成功:
添加产品实体和示例数据
在本节中,您将创建一个产品实体并添加样本数据。
在JBoss Developer Studio中,导航到项目目录并选择src / main / java。
展开com.redhat.coolstore.productcatalog包。
添加一个名为Product的新类。
添加以下代码:
源码入如下:
package com.redhat.coolstore.productcatalog;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Product {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long itemId;
private String name;
@Column(length=2000)
private String description;
private double price;
public Product() {}
public Long getItemId() {
return itemId;
}
public void setItemId(Long itemId) {
this.itemId = itemId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
添加一个新文件src / main / resources / import.sql,其中包含以下内容:
验证是够成功:
检查控制台输出并验证您是否看到与这些类似的行,表明数据已加载:
创建数据库存储库接口并实现testFindAll
在JBoss Developer Studio中,导航到项目目录并选择src / main / java。
展开com.redhat.coolstore.productcatalog包。
添加一个名为ProductRepository的新接口。
添加以下代码:
在JBoss Developer Studio中,导航到项目目录并选择src / test / java。
打开ProductCatalogJPATests并将ProductRepository注入类变量:
进行验证:
将自定义方法添加到产品存储库
在本节中,您将向ContentRepository添加自定义findByName方法,该方法按名称返回产品。
打开ProductRepository类并添加以下接口方法:
打开ProductCatalogJPATests.java并添加以下测试:
进行验证:
添加测试用例
在本节中,您将添加一个用于创建和删除条目的测试用例。
打开ProductCatalogJPATests.java并添加以下测试:
进行验证:
将REST服务更改为使用产品存储库
在本节中,您将更改REST服务以使用ProductRepository并返回产品列表。
打开ProductCatalogService并将ProductRepository注入类变量:
添加新的list方法以返回productRepository.findAll()的结果:
访问应用:
魏新宇
- "大魏分享"运营者、红帽资深解决方案架构师
- 专注开源云计算、容器及自动化运维在金融行业的推广
- 拥有MBA、ITIL V3、Cobit5、C-STAR、TOGAF9.1(鉴定级)等管理认证。
- 拥有红帽RHCE/RHCA、VMware VCP-DCV、VCP-DT、VCP-Network、VCP-Cloud、AIX、HPUX等技术认证