Was ist der beste Weg, um Sitzungen in Spring JavaMailSender wieder zu verwenden?Spring JavaMailSender - beste Methode zur Verwendung der Sitzung
In einem Szenario, in dem ein Verbraucher Nachrichten aus einer Warteschlange liest und E-Mails basierend auf den Nachrichten auslöst, werden die E-Mails nacheinander gesendet. Wenn immer eine neue Sitzung erstellt wird, ist das nicht ein Overhead? Wenn JavaMailSender eine Singleton-Bean ist, verwendet sie immer dieselbe Sitzung? Was ist die beste Lösung hier?
Ich sah Stichproben von JNDI-Sitzungen in JavaMailSender-Bean-Konfiguration festgelegt. Wir haben keine Unterstützung für JNDI, also ist das keine Option.
ich zur Zeit eine neue Instanz von JavaMailSenderImpl zu schaffen, damit die neue Sitzung. Obwohl die Nachricht aus einer Warteschlange gelesen wird, ist der E-Mail-Sendeteil nicht mit der Federintegration integriert. Es ist eine eigenständige Komponente mit JavaMailSenderImpl und MimeMessageHelper, die von überall in der Anwendung zum Senden einer E-Mail aufgerufen werden kann. Wenn wir es in eine Bean konvertieren und es übergreifend verwenden, wie funktioniert die Sitzung? Wird zu irgendeinem Zeitpunkt eine E-Mail gesendet, die dieselbe Sitzung verwendet? –
Ja, 'JavaMailSender' muss eine Singleton-Bean sein und ihre Sitzung wird wiederverwendet. Nur eine neue Sitzung wird erhalten, wenn der vorherige tot ist. Sitzung ist ein Thread-sicheres Objekt und kann daher gemeinsam genutzt werden. Nichts, über das man sich sorgen sollte! –