il y a une application de démarrage de ressort. et créer un événement comme UserCreateEvent
et un auditeur UserCreateListener
démarrage de printemps comment désinscrire gaava eventbus écouteur?
événement:
public class UserCreateEvent {
private Long userId;
}
auditeur:
@Component
public class UserCreateListener {
@Autowired
private Eventbus eventbus;
@PostConstruct
public void init() {
this.eventbus.register(this)
}
@Subscribe
public void onUserCreate(UserCreateEvent event) {
Long userId = event.getUserId();
// todo something necessary
}
}
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(Application.class);
application.run(args);
}
}
maintenant, je veux désenregistrer le UserCreateListener
après le démarrage de l'application de démarrage de printemps. comment puis-je faire Eventbus
annuler l'enregistrement de cet événement et de l'auditeur ??
Typo: '@ Comonent' =>' @ Component', pourriez-vous mettre à jour votre code s'il vous plaît –
@ FrançoisMaturel ok, merci. –
Pourquoi voulez-vous annuler l'inscription d'un composant que vous venez de créer? si vous n'en avez pas besoin, il suffit de supprimer l'annotation @Component ou d'utiliser l'annotation org.springframework.context.annotation.ComponentScan.Filter pour exclure UserCreateListener du contexte de démarrage du ressort – db80