自动装配的 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 解决了该问题。
我在我的 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 解决了该问题。