Spring 如何创建MongoOperations Bean?
我正在尝试制作一个MongoOperations Bean,但无法使其运行。我有几个类将连接到数据库,我不想在每个数据库连接中添加以下代码Spring 如何创建MongoOperations Bean?,spring,mongodb,javabeans,autowired,mongotemplate,Spring,Mongodb,Javabeans,Autowired,Mongotemplate,我正在尝试制作一个MongoOperations Bean,但无法使其运行。我有几个类将连接到数据库,我不想在每个数据库连接中添加以下代码 ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig2.class); MongoOperations mongoOperation = (MongoOperations) ctx.getBean("mongoTemplate"); 上述代码有效
ApplicationContext ctx = new AnnotationConfigApplicationContext(SpringMongoConfig2.class);
MongoOperations mongoOperation = (MongoOperations) ctx.getBean("mongoTemplate");
上述代码有效
我正在创建一个RESTWeb服务,我有几个类,每个类都需要写入MongoDb.Collection
我已经设置了一个Bean配置文件:
@Configuration
public class SpringMongoConfig2 {
@Bean
public MongoDbFactory mongoDbFactory2() throws Exception {
return new SimpleMongoDbFactory(new MongoClient(), "myDatabase");
}
@Bean
public MongoTemplate mongoTemplate2() throws Exception {
MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory2());
return mongoTemplate;
}
@Bean
public MongoOperations mongoOperations2() throws Exception {
return mongoTemplate2();
}
然后在InMongodBOperations类中,我尝试像这样自动连接它:
@Autowire MongoOperations mongoOperations2;
mongoOperations2.findAll(MongoLicense.class);
我的错误是它不能创建bean。有人能看出我做错了什么吗
下面是堆栈跟踪:
type Exception report
message Request processing failed; nested exception is java.lang.NullPointerException
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:943)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:822)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:807)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
no.nlf.rest.CorsFilter.doFilter(CorsFilter.java:27)
root cause
java.lang.NullPointerException
no.nlf.dal.LicenseController.getAllLicenses(LicenseController.java:30)
no.nlf.logic.LicenseLogic.getAllLicenses(LicenseLogic.java:18)
no.nlf.rest.RestLicense.licenseList(RestLicense.java:26)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:214)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:748)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:931)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:822)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:807)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)
no.nlf.rest.CorsFilter.doFilter(CorsFilter.java:27)
在spring应用程序上下文中
<mongo:db-factory id="mongoDbFactory" host="db" port="27017" dbname="dbname" />
<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
<constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean>
请发布堆栈跟踪显示,请说明您的
restclicense
、LicenseLogic
和LicenseController
是如何连接的。它们都是春豆吗?如何启动SpringWebCTX?您真的确定SpringMongoConfig2
对web ctx是可访问的吗?它与其他类Restlicense og LicenseLogic无关。这一切都在LicenseController中。如果像我在开始时写的那样使用applicationContext.getBean(),效果很好,但是我有几个类将连接到数据库,并且我无法为每个类创建新的应用程序上下文。
@Autowired
MongoTemplate mt;