从@service类调用@controller类是一个好习惯吗?
目前我正在从另一个控制器(Spring Boot Project)直接调用控制器,我打算在它们之间引入@service层。
请告诉我
答案 0 :(得分:2)
我不会直接从服务层调用控制器。您可能会获得循环依赖。
我会通过依赖注入使用observer pattern。当控制器实现接口时,您可以将其自动装入您的服务中。
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
}
如果您的控制器也有对您服务的引用,您可能需要使用InitializingBean来注册观察者。