在我的Java(Spring Boot)应用程序中,我有以下服务接口:
public interface PDFService {
String createPdf(UUID uuid);
}
并将以下服务方法作为实现:
public class BrandPDFServiceImpl implements PDFService {
private final BrandService brandService;
@Override
public String createPdf(UUID uuid) {
Context context = new Context();
BrandDTO brandDTO = brandService.findByUuid(uuid);
context.setVariable("name", brandDTO.getName());
context.setVariable("url", brandDTO.getImageUrl());
setProductInformationToHtml(context, uuid);
return templateEngine.process("template", context);
}
}
现在我需要实现一个类似的服务,它将使用ProductService而不是BrandService:
public class ProductPDFServiceImpl implements PDFService {
private final ProductService brandService;
@Override
public String createPdf(UUID uuid) {
Context context = new Context();
ProductDTO productDTO = productService.findByUuid(uuid);
context.setVariable("name", productDTO.getName());
context.setVariable("url", productDTO.getImageUrl());
setProductInformationToHtml(context, uuid);
return templateEngine.process("template", context);
}
}
如果我使用这种方法,我无法从Controller调用正确的实现,如下所示:
private final PDFService pdfService;
public String createBrandPdf(@PathVariable UUID uuid) {
return pdfService.createPdf(uuid);
}
// Note: I will add another endpoint for Product,
// but still cannot differentiate which service will be called :(
public String createProductPdf(@PathVariable UUID uuid) {
return pdfService.createPdf(uuid); // ???
}
在这个场景中,我应该如何正确地合并这两个服务?我认为可能需要创建2个继承自PDFService的接口,但不确定是否有更好的方法,例如使用泛型或模板方法模式。知道吗?
您可以使用限定符,在您的控制器类中,您可以声明两个服务引用,并且使用限定符,您可以告知SpringFramework您在这里需要的bean的确切类型,因此您可以像这样在控制器内使用这两个服务:
@Qualifier("Brand")
public class BrandPDFServiceImpl implements PDFService {
//...
}
@Qualifier("Product")
public class ProductPDFServiceImpl implements PDFService {
//...
}
private final PDFService brandService;
private final PDFService productService;
// your Constructor here
public MyController (@Qualifier("Brand")PDFService brandService, @Qualifier("Product")PDFService productService) {
this.productService = productService;
this.brandService = brandService;
}
public String createBrandPdf(@PathVariable UUID uuid) {
return brandService.createPdf(uuid);
}
// Note: I will add another endpoint for Product,
// but still cannot differentiate which service will be called :(
public String createProductPdf(@PathVariable UUID uuid) {
return productService.createPdf(uuid); // ???
}
问题内容: 我不知道如何很好地解释这一点,所以请多多包涵。 我试图对彼此相邻的相似行进行分组,如果相同,则基本上忽略第n + 1行。我不确定这在MySQL中是否容易实现。这些行除描述外不共享其他任何属性。如果还有其他不重复的“描述”,我仍然希望将它们返回。 我有一张桌子,上面满是这样的条目: 问题答案: 您可以使用巧妙的技巧来做到这一点。诀窍是计算与特定id 不同 的描述的数量。对于序列中的值,此
问题内容: 我需要在基于Java的应用程序中使用Wordnet。我想要: 搜索同义词集 找到同义词集之间的相似性/相关性 我的应用程序使用RDF图,我知道Wordnet中有SPARQL端点,但是我想最好有一个数据集的本地副本,因为它不是太大。 我发现以下罐子: 通用库 -JAWS http://lyle.smu.edu/~tspell/jaws/index.html 通用库 -JWNL http:
问题内容: 我有两个表的列相似-假设表A的列为LABEL_A,表B的列为LABEL_B。LABEL_A和LABEL_B的数据类型相同。 如何在单个查询中从两个表中选择LABEL?(因此,查询结果包含单个列LABEL,该列包含两个表的LABEL列中的数据)。 编辑:我可以在游标中使用这样的UNION查询吗? 感谢您的回答。 问题答案: 使用: 会更快,但是如果存在重复项,则不会删除重复项。如果要删除
本文向大家介绍C ++中的相似字符串组,包括了C ++中的相似字符串组的使用技巧和注意事项,需要的朋友参考一下 假设我们有两个字符串X和Y,如果可以交换X的两个字母,它们是相似的,因此等于Y。另外,如果两个字符串X和Y相等,则它们相似。例如,考虑两个字符串,例如“ tars”和“ rats”相似,如果我们交换t和r,则可以找到另一个,现在“ rats”和“ arts”相似,但是“ star”不同类
如果有两个数组在swift中创建,如下所示: 如何将它们合并为< code>[1,2,3,4,5,6]?
问题内容: 我有一些String []数组,例如: 如何混合它们,以便得到(a的0个元素,然后b,c,a,b,c的1个元素,依此类推)?谢谢 更准确地说,结果数组必须包含第一个数组的第一个值,然后是第二个数组的第一个值,…,最后一个数组的第一个值,第一个数组的第二个值,…,最后一个数组的第二个值,…,最大数组的最后一个值。如果数组的大小不同,则不会考虑较小的数组。 这是一个例子: 另外,我想结合可