Я столкнулся с тем обстоятельством, что я использовал ApplicationEventPublisher, предоставленный на этапе BootstrapAutoConfiguration в приложении. Поскольку я использовал это, события, которые я публикую sh, не распространяются должным образом.
Чтобы обойти это, мне нужно было обязательно заменить ApplicationEventPublisher, который был вставлен во время bootstrap, на что-то после добавления другой автоконфигурации, выполняемой на этапе автоконфигурации, а не на этапе Bootstrap.
Я добавил (но это необязательно) ApplicationEventPublisherAware
в класс в моем случае DockerSwarmDiscovery
@Configuration
@ConditionalOnBean(DockerSwarmDiscovery.class)
@Slf4j
public class DockerSwarmDiscoveryWatchAutoConfiguration {
@Autowired
private DockerSwarmDiscovery dockerSwarmDiscovery;
@Autowired
private ApplicationEventPublisher applicationEventPublisher;
@PostConstruct
public void injectPublisher() {
dockerSwarmDiscovery.setApplicationEventPublisher(applicationEventPublisher);
}
}