Ich brauche meinen Spring-Anwendungskontext, um eine Bean aufzunehmen, die ein (Java 7) Path
Objekt mit einem festen (bekannten) Pfadnamen. Welche XML-Bean-Definition sollte ich verwenden?
Diese Art von Bohnen hat einige Komplikationen:
Path
ist eine Schnittstelle, und Path
Objekte sollten mit Paths.get(String...)
statische Factory-Methode. Paths.get(URI)
. Da das Objekt -a Path
ist, sollte class
der Bean Path
sein:
Ich muss die zu verwendende statische Factory-Methode angeben, die ein Attribut factory-method
erfordert. Aber die Factory-Methode gehört eher zur java.nio.file.Paths
-Klasse als zur java.nio.file.Path
-Klasse, daher nehme ich an, dass das Folgende nicht funktioniert:
Schließlich muss ich die Argumente für die Factory-Methode angeben. Wie mache ich das? Verwenden von verschachtelten constructor-arg
(sic) -Elementen? So etwas in der Art?
Aber das funktioniert nicht: Springs wirft ein BeanCreationException
, beschweren sich über "Keine passende Factory-Methode gefunden: Factory-Methode 'java.nio.file.Paths.get ()'."
Nach einigen Experimenten mit pingw33n fand ich Folgendes:
%Vor%Hinweis:
class
an. array
-Konstruktorargument an, um die Auswahl der korrekten Überladung der Factory-Methode zu erzwingen. Dadurch wird vermieden, dass die Umlaufroute von anstatt einer Datei-URI erstellt werden muss.