0

Ich habe ApplicationContext in meiner RestController-Klasse autowired, da ich eine Prototyp-Bean für jede der empfangenen Anfragen erstellen musste.Autowired ApplicationContext hat keine Methode getBean

Um die Bean zu erstellen, habe ich context.getBean (xx) versucht, aber der Kontext wurde nicht getBean() -Methode aufgelistet. Gibt es eine Möglichkeit, dass ich in meiner RestController-Klasse Beans der Prototyp-Klasse bekommen kann. Ich verwende diese Anwendung als Spring Boot.

Beispielcode ist hier:

@RestController 
@RequestMapping("/Restcompare") 
public class CompareService { 


    @Autowired 
    private ApplicationContext context; 

    private Comparator comparator; 

    @RequestMapping("/compare") 
    public String vcompare(@RequestParam(value="pre", defaultValue="") 
    String pre, @RequestParam(value="post", defaultValue="") String post){ 


     comparator = context.getBean(Comparator.class); //Error here 
    } 
} 

Update:

Lösung: Irgendwie IDE importiert eine andere Application außer dem Spring-Framework ist. Durch Korrigieren des Imports zu org.springframework.context.ApplicationContext wurde das Problem behoben.

+0

Welche IDE verwenden/verwenden Sie? Nur neugierig. – Pytry

+0

Spring Tool Suite! –

Antwort

0

Irgendwie IDE importiert die eine andere Application außer dem Spring-Framework. Durch Korrigieren des Imports in org.springframework.context.ApplicationContext wurde das Problem behoben.

0

Sie können Ihre Bohne mit @Autowired, wie diese injizieren:

@Autowired 
private Comparator comparator; 
+0

Dies funktioniert nicht, da die Vergleichsbohne in der compareService-Klasse nur einmal erstellt wird. Die korrekte Methode besteht darin, eine Prototyp-Bean nur mit Kontext zu erstellen. Das Problem, das ich hatte, ist, dass Frühling einen anderen ApplicationContext als Frühling importiert hat. Durch Korrigieren des Imports in org.springframework.context.ApplicationContext wurde das Problem behoben. Danke für die Antwort. –

+0

Oh, kein Problem! –

Verwandte Themen