[英]mongoDB connection returning null value
在我的代碼下面,該代碼返回null值。
ConfigurationFile.java
package config;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Bean;
import com.mongodb.MongoClient;
@Configuration
public class ConfigurationFile {
private static MongoTemplate mongoTemplate;
public @Bean(name="mongoTemplate")
MongoTemplate mongoTemplate()throws Exception{
mongoTemplate = new MongoTemplate(new MongoClient("localhost",27017),"Test");
System.out.println("mongoTemplateValue1--> " + mongoTemplate);
return mongoTemplate;
}
public static MongoTemplate getMongoTemplate() {
System.out.println("mongoTemplateValue-->" + mongoTemplate);
return mongoTemplate;
}
}
客戶端.java
package client;
import java.net.UnknownHostException;
import org.springframework.data.mongodb.core.MongoTemplate;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import config.ConfigurationFile;
import extraction.Extractor;
public class Client {
private MongoTemplate mongoTemplate;
public static void main(String[] args){
Client c = new Client();
c.sample();
}
private void sample(){
SetupMongoDb();
}
private void SetupMongoDb() {
if (mongoTemplate == null) {
System.out.println("insideSetup");
mongoTemplate = ConfigurationFile.getMongoTemplate();
}
}
}
我無法獲得mongoTemplate值。 下面的輸出insideSetup mongoTemplateValue-> null
有人可以幫忙嗎?
永遠不會調用mongoTemplate()
方法,因為使用Client.main()
啟動應用程序時實際上並沒有創建Spring Context。 需要學習Spring Framework的工作原理,特別是如何創建應用程序上下文 。 然后,您需要將上下文指向配置文件並使用自動裝配來獲取MongoTemplate
。
@Configuration
public class ConfigurationFile {
@Bean(name="mongoTemplate")
public MongoTemplate mongoTemplate()throws Exception{
MongoTemplate mongoTemplate = new MongoTemplate(new MongoClient("localhost",27017),"Test");
return mongoTemplate;
}
}
然后,只需使用自動裝配字段即可:
@Service
public class SomeService {
@Autowired
private MongoTemplate mongoTemplate;
public doSomething() {
//Use your mongoTemplate
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.