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

Kum*_*mar 5 spring

从 @service 类调用 @controller 类是一个好习惯吗?

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

请告诉我

sch*_*ach 5

我不会直接从服务层调用控制器。您可能会得到循环依赖。

我将通过依赖注入使用观察者模式。当控制器实现接口时,您可以将其自动连接到您的服务中。

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
}
Run Code Online (Sandbox Code Playgroud)

如果您的控制器也有对您的服务的引用,您可能需要使用InitializingBean,您可以使用它来注册观察者。