gpt4 book ai didi

java - 将 Spring 上下文注入(inject)非 Spring 类

转载 作者:行者123 更新时间:2023-12-01 08:50:31 26 4
gpt4 key购买 nike

我对 Java 比较陌生,并且有 Web 背景,我发现自己正在尝试在 Spring 中实现 Web 应用程序。

主要问题是我有以下文件夹结构: enter image description here

我正在尝试将 Spring 上下文注入(inject)到 Controllers 文件夹中找到的任何类中,据我所知,这基本上意味着我的类不依赖于 Spring。

该应用程序使用 MongoDB 作为后端,我正在尝试像这样实例化上下文:

WebApplicationContext context = ContextLoader.getCurrentWebApplicationContext();

IODataInterface mongo = context.getBean(BookModel.class);

我在 context.getBean(...) 行上遇到此异常:com.web.spring.Controllers.DemoController.DemoController(DemoController.java:19)

感谢任何帮助,如果有人能够正确地向我解释实际术语,我会非常高兴,因为您可能已经猜到,我已经为具有 0 Java 工作经验的人跳入了一些非常高级的内容。

完整的异常堆栈:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

据我所知,上下文似乎已创建,但 getBean() 不起作用。我现在真的很困惑。

最佳答案

您似乎正在尝试获取模型类的实例(我想由 @Document 注释,因为您正在使用 MongoDb)。 @Document 和 JPA @Entity 注解的类实际上不是 Spring Bean。

因此,要实例化一个新模型,您只需使用 new BookModel()

PS。另外,请采用小写包/文件夹命名约定。只有类名应该以大写字母开头。

关于java - 将 Spring 上下文注入(inject)非 Spring 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42428440/

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