gpt4 book ai didi

java - 如何在 Spring Boot 中将属性设置为通用 @Service 类?

转载 作者:行者123 更新时间:2023-11-30 12:08:39 25 4
gpt4 key购买 nike

我是 Spring Boot 的新手,所以请在这里回答我的基本问题。

我想构建一个通用的 @Service 类,它具有定义明确的方法,甚至不需要被覆盖。

这个类唯一需要做的就是根据调用的 Controller 方法调整它的属性。基本上,此类用作需要调整某些参数的作业处理程序,以便其方法可以执行它们应该计算的内容。该作业将始终具有相同的工作流程,以相同的顺序调用方法,但它会根据接收到的参数/属性获得不同的结果,正如我之前所说,这些参数/属性由 Controller 方法定义。

除了调整工作流程的属性之外,它唯一的属性是一个 Autowiring 的 @Repository 对象,它将把工作的结果保存在数据库中。

也许我可以简单地实例化一个 Job Handler 对象并使用我需要的参数调用构造函数,但我不知道这样做的“Spring 方式”是什么,考虑到 Spring 如何使用依赖注入(inject)和我需要一个嵌入到 Job Handler 服务中的 @Repository 对象。

如果有人可以编写示例代码/示例,我将不胜感激,这样我就可以理解如何使用 Spring Boot 完成此操作,这样我就不必复制代码或服务类。

最佳答案

对于这种情况,Spring 的方法是创建一个 JobHandler 的 Bean,在其中注入(inject)必要的依赖项,例如您的存储库:

@Configuration
class MyConfiguration {

@Bean
MyJobHandler myJobHandler(MyRepository myRepository) {
return new MyJobHandler (myrepository);
}

}

或者,如果您不需要配置类,您可以将 JobHandler 声明为一个组件并在构造函数中注入(inject)存储库:

@Component
class MyJobHandler {

private MyRepository myRepository;

public MyJobHandler myJobHandler(MyRepository myRepository) {
this.myRepository = myRepository;
}

}

关于java - 如何在 Spring Boot 中将属性设置为通用 @Service 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54244061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com