Gute Frage.
Es gibt keine Methode isRequst()
in BeanFactory
, da der Anforderungsbereich nur für das Internet relevant ist.
Ich habe gerade versucht, den Weg zu finden, und dies ist fehlgeschlagen. Also kann ich Ihnen einen Work-Around vorschlagen, der funktioniert, wenn Sie Anmerkungen verwenden. Wenn Sie eine Bean-Instanz erhalten, sagen Sie bean.getClass().getAnnotation(Scope.class)
. Wenn dies zurückgibt, rufen Sie Scope
value()
.
Dies ist nicht "wissenschaftliche" Methode, aber hoffentlich gut genug für Sie.
BEARBEITEN
Andere Vorgehensweise ist die folgende. Die Anforderungsbereichsbeans werden im Anforderungsattribut gespeichert. Ich erinnere mich nicht an seinen Namen, aber Sie können es leicht selbst finden, untersuchen Sie einfach Ihre Anfrage im Debugger. Überprüfen Sie dann, ob der Verweis auf Ihre Bean vorhanden ist. Diese Methode ist wahrscheinlich besser, erfordert jedoch einige Anstrengungen, das Anforderungsattribut und die Datenstruktur des Spring-Frameworks zu untersuchen.
Dies ist nur eine Vermutung, aber da regulärer Anwendungscode über Bereiche überhaupt nicht wissen sollte, sind die internen Methoden wahrscheinlich die einzige Möglichkeit. – biziclop
Sie sollten es zur Laufzeit nicht entdecken müssen. Sie sind der Entwickler der Anwendung. Du solltest es *** *** schon wissen. – EJP
@EJP In meinem Fall, in dem Ort, wo ich wissen muss, ich nicht. Wenn ich wüsste, würde ich nicht fragen. – Sandro