java如何在Spring中从不同的控制器调用RestController方法?
我有一个RestController,看起来像这样:
@RestController
@RequestMapping("/api")
public class SimulationController {
@Autowired
private SimulationRepository simulationRepository;
@PostMapping("/simulations")
public Simulation createSimulation(@Valid @RequestBody Simulation simulation){
simulationRepository.save(simulation);
return simulation;
}
}
我想知道如何将模拟对象传递给其他控制器,该控制器可以处理数据并将其保存到其他存储库。例如,它可能看起来像这样:
@PostMapping("/simulations")
public Simulation createSimulation(@Valid @RequestBody Simulation simulation){
simulationRepository.save(simulation);
SimulationProcess simulationProcess = new SimulationProcess(simulation);
simulationProcess.simulate();
return simulation;
}
@Controller
public class SimulationProcess {
private Simulation simulation;
@Autowired
private SecondRepository secondRepository;
public SimulationProcess(Simulation simulation) {
this.simulation = simulation;
}
public void simulate(){
// process data from this.simulation
secondRepository.save(new Second(...));
}
}
但我知道这是不允许的。有没有办法做到这一点
# 1 楼答案
我认为您可以在模拟过程类中使用@Service而不是@Controller,您可以将它注入到第一个控制器并使用它,但您不能将请求映射到服务(我认为)
我希望有帮助。对不起,我犯了错误,英语不是我的第一语言