Это не похоже на проблему с Spring-DM, скорее, вы настроили себя на этот тупик: A зависит от B, B зависит от A, поэтому никто не может выполнить какую-либо работу. Чтобы выйти из этого, вам, вероятно, нужно изменить свой дизайн и разрешить запуск одного из A или B без другого. Между тем, другой должен иметь встроенную ленивую загрузочную логику (это будет ваша работа) и продолжить последовательность запуска, когда другой сам подключится.
С помощью декларативной службы OSGi вы можете объявить зависимость от службы, но разрешить ее отсутствие во время запуска (сделайте это с помощью параметра мощности).