gpt4 book ai didi

java - Spring MVC 依赖注入(inject)在从 RequestMappingController 中调用的对象中不起作用

转载 作者:行者123 更新时间:2023-12-02 08:22:21 25 4
gpt4 key购买 nike

当我尝试执行如下操作并且 Spring MVC 中有一个 RequestMapping Controller 类实例化并调用外部类时,我无法在该类中使用依赖项注入(inject),例如如果我尝试使用

@Resource(name = "savedsearchesService")
private SavedSearchesService savedsearchesService;

我收到空指针异常。相反,我必须将 SavedSearchesService savingsearchesService 从我的 Controller 方法传递到另一个外部方法才能使其正常工作。

我想知道是否有人可以指出为什么会这样,因为我很好奇,以及我是否遗漏了如何正确执行此操作的内容。谢谢

@Controller
@RequestMapping("")
public class MainController {

@Resource(name = "savedsearchesService")
private SavedSearchesService savedsearchesService;

@RequestMapping(value = "/", method = RequestMethod.GET)
public String getPersons(Model model, HttpServletRequest request)
throws IOException {

HttpSession session = request.getSession();


SomeExternalClass someExternalClass = new SomeExternalClass ();
someExternalClass.Main();
}

}

这是外部类的示例:

public class SomeExternalClass {

@Resource(name = "savedsearchesService")
private SavedSearchesService savedsearchesService;

public void Main () {
savedsearchesService.get();

}
}

最佳答案

问题出在这一行:

SomeExternalClass someExternalClass = new SomeExternalClass();

所有依赖于 springs 依赖注入(inject)的类都必须是 spring 管理的,但每当您使用 new 关键字实例化类时,情况并非如此。

有多种选择。提一些:

  • SomeExternalClass 注入(inject)您的 Controller 。

  • 创建一个隐藏实例化逻辑的 spring 管理工厂(例如 applicationContext.getBean())

关于java - Spring MVC 依赖注入(inject)在从 RequestMappingController 中调用的对象中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5249953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com