我是Spring Boot的新手,所以在这里提出我的基本问题。
我想构建一个通用的@Service
类,该类具有定义明确的方法,甚至不需要覆盖。
此类唯一需要做的就是根据调用的Controller
方法来调整其属性。基本上,此类用作Job处理程序,需要调整一些参数,以便其方法可以执行应计算的内容。作业将始终具有相同的工作流,并以相同的顺序调用方法,但是它将获得不同的结果,具体取决于接收到的参数/属性,正如我之前所说,这些参数/属性是由控制器方法定义的。
除调整作业的工作流程以外,它唯一具有的属性是自动连接的@Repository
对象,该对象会将作业的结果保存在数据库中。
也许我可以简单地实例化一个Job Handler对象,并使用该工作所需的参数调用构造函数,但是考虑到Spring如何与依赖项注入一起工作,我不知道这样做的“ Spring方式”是什么。我需要一个@Repository
对象嵌入到作业处理程序服务中。
如果有人可以编写示例代码/示例,我将不胜感激,因为我可以理解如何使用Spring Boot做到这一点,因此不必重复代码或服务类。
答案 0 :(得分:0)
这种情况的春季方法是创建JobHandler的Bean,在其中注入必要的依赖项,例如存储库:
@Configuration
class MyConfiguration {
@Bean
MyJobHandler myJobHandler(MyRepository myRepository) {
return new MyJobHandler (myrepository);
}
}
或者,如果您不需要配置类,则可以将JobHandler声明为Component并将存储库注入构造函数中:
@Component
class MyJobHandler {
private MyRepository myRepository;
public MyJobHandler myJobHandler(MyRepository myRepository) {
this.myRepository = myRepository;
}
}