java-Spring MVC,从控制器内部调用另一个控制器

我正在使用一个控制器调用第二个控制器上的方法的现有代码.到目前为止,有2种实现.

第一次实施

return new Controller().method(request, response);

第二实施

@Autowired
private Controller controller.

return this.controller.method(request, response);

哪一种是正确的实现方式,如果其中任何一个存在问题,那将会是什么问题.

最佳答案
您需要从另一个控制器调用方法的事实表明,可能存在设计缺陷.

使用选项1,您将失去Spring DI容器给您带来的一切:即,其他控制器可能会被Spring实例化,并带有一些其他依赖关系.如果您自己实例化它,即使它现在可以正常工作,因为您可能没有@Autowired / @Value依赖关系,那么一旦您添加对其他资源的依赖关系,它就会中断.此外,您已经有一个实例为您构建了容器,为什么还要创建其他实例呢?

转载注明原文:java-Spring MVC,从控制器内部调用另一个控制器 - 代码日志