自动装配的 ApplicationContext 没有方法 getBean

Autowired ApplicationContext has not method getBean

我在我的 RestController class 中自动装配了 ApplicationContext,因为我需要为收到的每个请求创建一个原型 bean。

为了创建 bean,我尝试了 context.getBean(xx),但上下文没有列出 getBean() 方法。有没有一种方法可以在我的 RestController class 中获取原型 class 的 bean。我运行这个应用程序作为Spring启动。

示例代码在这里:

@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
    }
}

更新:

解决方案: IDE 以某种方式导入了不同于 Spring 框架的 ApplicationContext。将导入更正为 org.springframework.context.ApplicationContext 解决了该问题。

您可以使用 @Autowired 注入您的 bean,如下所示:

@Autowired
private Comparator comparator;

不知何故 IDE 导入了不同于 Spring 框架的 ApplicationContext。将导入更正为 org.springframework.context.ApplicationContext 解决了该问题。