Spring: Injektion von Mehrdeutigkeiten

Diskutiere Spring: Injektion von Mehrdeutigkeiten im Application Tier Forum; Moin, ich suche ein Möglichkeit in Spring das gleiche zu machen was in in CDI mit: @Inject Instance<MyInterface> instances; machen...

  1. JonnyRico
    JonnyRico Neues Mitglied
    Moin,

    ich suche ein Möglichkeit in Spring das gleiche zu machen was in in CDI mit:

    Code (Java):

    @Inject
    Instance<MyInterface> instances;
     
    machen kann. Ich möchte also in meiner Spring-Config die Injektion eines Interfaces definieren und dann alle Objekte instanziiert bekommen, die dieses Interface implementieren. Um das Auflösen der Mehrdeutigkeit möchte ich mich also selbst kümmern bzw. ich brauche eigentlich alle Objekte.
    Was ich allerdings noch besser finden würde wäre die Angabe des Interfaces + Annotation also die Entsprechung zu


    Code (Java):

    @Inject
    @OnlyBeansWithThisAnnotation
    Instance<MyInterface> instances;
     
    Kann mir jemand sagen wie und ob ich dies in Spring (Version ist mir egal) realisieren kann?

    Gruß

    Sascha

    P.s. Konfigurieren möchte ich das ganze am liebsten in der Old-School XML-Config ;)
     
  2. Vielleicht hilft dir das kostenlose Training weiter --> (hier klicken)
  3. Noctarius
    Noctarius Neues Mitglied
  4. JonnyRico
    JonnyRico Neues Mitglied
    Hi,

    nein das ich eigentlich nicht das was ich suche. Wenn ich zwei Klassen habe die das Interface MyInterface implementieren und ich in einer anderen Klasse einen Setter der Art
    Code (Java):
    @AutoWired public void setMyObject(MyInterface value){...}
    habe und ich in Spring dann auto-wire="ByType" einstelle, dann erhalte ich eine Exception, dass die Injection nicht ausgeführt werden kann, da eine Mehrdeutigkeit vorliegt. Er kann ja auch nicht wissen welches Objekt er injizieren soll. Bei meinem CDI-Beispiel muss der Container das auch gar nicht, denn er injected mir einfach beide in den Instance-Wrapper über den ich dann iterieren kann. So komme ich an alle Instanzen heran. Das würde ich auch gerne in Spring können nur leider weiß ich nicht wie.

    Gruß

    Sascha
     
  5. Noctarius
    Noctarius Neues Mitglied
    [c]@Qualifier("beanname")[/c] - Das?
     
  6. mvitz
    mvitz Aktives Mitglied
    Code (Java):
    @Autowired
    private List<MyInterface> instances;
    oder auch
    Code (Java):
    @Inject
    private List<MyInterface> instances;
     
  7. JonnyRico
    JonnyRico Neues Mitglied
    Krass das funzt? Das werde ich morgen gleich mal testen. Bekomme ich das auch komplett ohne Annotation hin. Also ausschließlich mit XML-Config?
     
  8. Noctarius
    Noctarius Neues Mitglied
  9. JonnyRico
    JonnyRico Neues Mitglied
    ????
     
  10. JonnyRico
    JonnyRico Neues Mitglied
    Super danke das ist es. Ich hatte nicht erwartet das es auf die triviale Art funktioniert ;) Da zeigt sich mal wieder "Do the simplest thing that could possibly work" :)

    Danke
     
  11. mvitz
    mvitz Aktives Mitglied
  12. Schau dir jetzt hier den Kurs an und lerne Java zu programmieren: --> Hier klicken, um mehr zu erfahren (Klick)
Die Seite wird geladen...

Spring: Injektion von Mehrdeutigkeiten - Ähnliche Themen

Suche Tutorial für - Spielfiguren springen lassen
Suche Tutorial für - Spielfiguren springen lassen im Forum Bücher, Tutorials und Links
Spring-Boot und Spring Data Programmstart zu langsam
Spring-Boot und Spring Data Programmstart zu langsam im Forum Datenbankprogrammierung
Spring Security für Java SE
Spring Security für Java SE im Forum Allgemeine Java-Themen
Springen an Seitenanfang verhindern
Springen an Seitenanfang verhindern im Forum Für Verirrte - Fragen zu JavaScript
Spring, unzählige xml-servlets files?
Spring, unzählige xml-servlets files? im Forum Java Basics - Anfänger-Themen
Thema: Spring: Injektion von Mehrdeutigkeiten