Loading...

To Discuss or Not To Discuss

14. September 2023
2 Minuten Lesezeit
Beitrag teilen:

Hi,

Da du treuer Leser meines Newsletter bist, weißt du wahrscheinlich, dass ich Content auf drei verschiedenen Kanälen veröffentliche.

  • Montags und Donnerstags kommt dieser Newsletter.
  • Dienstags und Freitags ein LinkedIn Post
  • Und jeden Mittwoch schreibe ich einen Blog

Jeder Content hat eine andere Zielgruppe

Der Newsletter ist Infotainment. Er soll dich unterhalten, du sollst mit einem neuen Gedanken in den Tag starten. Und du sollst einen tieferen Einblick in meine Gedanken und Perspektiven erhalten.

LinkedIn dient der Reichweite. Am Ende des Tages bin ich Berater und hier ist meist mein erster Kontakt zu Entscheidern.

Und mein Blog ist SEO-optimiert und soll auf gängige Fragen eine schnelle Antwort bieten. (Das war nicht immer so - aber das ist eine andere Geschichte)

Mein gestriger Blog war eine Bredouille

Er behandelt das Event Handling in Spring.

ApplicationEvents bieten auch die Möglichkeit mit SpEL expressions conditions zu formulieren.

Wenn du zum Beispiel ein CustomSpringEvent hast:

public class CustomSpringEvent {

  private boolean publish;

  public CustomSpringEvent(boolean publish) {
    this.publish = publish;
  }

  public boolean isPublish() {
    return publish;
  }
}

Dann kannst du mit der folgenden Konfiguration dafür sorgen, dass nur Events mit dem publish flag verarbeitet werden:

@EventListener(condition = "#event.publish")
public void handleEvent(CustomSpringEvent event) {
  log.info("handled " + event);
}

Ich will dieses Feature aber nicht propagieren. SpEL expressions werden als String ausgedrückt. Wenn wir also publish in distribute umbenennen, dann kann uns der compiler hier nicht helfen. Der code wird immer noch kompilieren. Aber der Code ist fehlerhaft.

SpEL expressions sind ein wunderbares Beispiel für Murphy’s law :

“Anything that can go wrong will go wrong.”

Was soll ich also machen?

Mein Blog ist Anfängercontent. Wer auf diesen Artikel durch Google stößt, der ist noch dabei Grundlagen von Spring zu verstehen.

Wenn ich also das Condition-Feature erkläre, dann wird es benutzt.

Wenn ich aber vollständig ausformuliere, warum man dieses Feature vermeiden sollte, dann ist das out-of-scope.

Aber Anfänger haben auch ein Recht darauf diese Diskussion zu lesen und eine eigene Meinung zu bilden.

Also was soll ich machen? 😕

Ich habe es diesmal nicht ausdiskutiert. Ob das der richtige Ansatz ist? Ich weiß es nicht.

Rule the Backend,

~ Marcus

Top