Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在spring中从服务类调用另一个控制器_Spring - Fatal编程技术网

在spring中从服务类调用另一个控制器

在spring中从服务类调用另一个控制器,spring,Spring,从@service类调用@controller类是一种好的做法吗 由于目前我直接从另一个控制器(SpringBoot项目)调用控制器,我计划在两者之间引入@service层 请告诉我,我不会直接从服务层呼叫控制器。您可能会得到循环依赖关系 我将使用贯穿依赖注入。当控制器实现接口时,您可以将其自动连接到服务中 public interface Observer { void eventHappened(); } @Controller public class YourControl

从@service类调用@controller类是一种好的做法吗

由于目前我直接从另一个控制器(SpringBoot项目)调用控制器,我计划在两者之间引入@service层


请告诉我,我不会直接从服务层呼叫控制器。您可能会得到循环依赖关系

我将使用贯穿依赖注入。当控制器实现接口时,您可以将其自动连接到服务中

public interface Observer {

    void eventHappened();

}

@Controller
public class YourController implements Observer {

}

@Service
public class YourService {

    @Autowired
    private Observer o;

    // call o.eventHappened() somewhere in your code
}

如果您的控制器还引用了您的服务,您可能需要使用它来注册观察者。

谢谢您的回复,但我没有在这里提到,我说的是两个不同的控制器。控制器A调用服务类。服务类调用控制器B您可以应用相同的模式。谢谢!!将尝试实现相同的功能这将实现什么?在他的情况下,他的控制器C1调用另一个控制器C2。相反,C1中的代码应该移动到S1,C2中的代码应该移动到S2,然后他应该有一个@Autowired lateinit service1:S2中的S1和S2应该调用service1.functions()为什么要调用另一个控制器?这通常只是表示一个基本的OO建模问题。