自动连接的ApplicationContext没有方法getBean

时间:2017-10-26 17:32:00

标签: spring spring-boot spring-restcontroller spring-rest spring-ioc

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

要创建bean,我尝试了context.getBean(xx),但是上下文没有列出getBean()方法。有没有办法可以在RestController类中获取原型类的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解决了问题。

2 个答案:

答案 0 :(得分:1)

IDE以某种方式导入了除Spring框架之外的其他ApplicationContext。将导入更正为org.springframework.context.ApplicationContext解决了该问题。

答案 1 :(得分:0)

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

@Autowired
private Comparator comparator;