Я бы не назвал контроллер из сервисного слоя непосредственно. Вы можете получить круговые зависимости.
Я использовал бы 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, которые вы можете использовать для регистрации наблюдателя.
* Почему вы звоните другому контроллеру? Обычно это просто указывает на основную проблему моделирования OO. – chrylis