Kann jemand einen Feder-Anwendungskontext zu einem bestimmten Resource Resolver verwenden. Ich habe eine s3-Ressource geschrieben, um Inhalt aus einem Sicherheitskontext von Amazon S3 zu ziehen, und einen Ressourcen-Resolver, um diese "Ressourcen" von s3: // ... Typ-URLs zu erstellen, und der lokale Anwendungskontext verwendet beim Laden die richtigen Sicherheitsberechtigungsnachweise aus dem konfigurierten amazons3client. Ich habe einen s3 ResourceLoader geschrieben, der den AmazonS3-Client für eine neu erstellte s3-Ressource vorkonfiguriert.Springframe-Anwendung Kontext Ressource Resolver
Es wäre nett, diese Ressourcen in der Kontextkonfiguration als einfach "s3: // ..." angeben zu können und sich auf diesen Resource Resolver zu verlassen, um den richtigen Ressourcentyp zu erstellen, jedoch muss dies überschrieben werden Die getResource-Methode von Spring ApplicationContext wurde von DefaultResourceLoader geerbt, um meine eigene resourceResolver-Implementierung zu verwenden.
Ein weiterer Tack ist eine variable Resolver für Ressourcen zu konfigurieren, die passenden „s3: // ...“ Schema Ressourcentypen mit dieser Ressource Resolver zu lösen.
Ich hoffe, dass ihr ein Frühlingsguru heraus ist, der eine bessere Weise kennt, die Infrastruktur des Frühlingsanwendungszusammenhangs (ClasspathXMLAC für Argumente wake) zu manipulieren, um meine S3 Sicherheitsbedürfnisse sehr einfach zu behandeln zu machen.
Andere Vorschläge sind willkommen.
Ich hatte gehofft, dass diese Funktionalität wegen Bohnen in dem Kontext aufgenommen würde. Was ich gerade ausarbeite, ist das Einrichten der AmazonS3Client-Bean, gefolgt von einer abhängigen ApplicationContextAware S3Loader-Bean, die DefaultResourceLoader erweitert und dann den setApplicationContext ausführt, wenn eine Anwendungsinstanz des GenericApplication-Kontexts den resourceLoader auf den s3Loader setzt Resource Loader muss s3 und MongoDBs GridFS unterstützen, daher brauche ich einen neuen Namen: P. – gbegley
Sie können einen CompositeResourceLoader erstellen, der an N ResourceLoader-Instanzen delegiert.Sie können dann diskrete S3-, Mongo- und GridFS-basierte ResourceLoader haben, um sie zu aggregieren alles unter einem einzigen CompositeResourceLoader und übergibt diese an die # setResourceLoader-Methode von GenericApplicationContext. –