我对 Java 比较陌生,并且有 Web 背景,我发现自己正在尝试在 Spring 中实现 Web 应用程序。
我正在尝试将 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()
。
关于java - 将 Spring 上下文注入(inject)非 Spring 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42428440/