2016-10-01 75 views
1

我有以下用戶結構:無法設置MongoDB的主機MongoRepository

@Document 
public class User { 
    @Id 
    private String _id; 
    private String role; 
    private String username; 
} 

而一個蒙戈接口:

public interface UserRepository extends MongoRepository<User, String>{ 
} 

我把下面的配置在XML文件:

<mongo:mongo host="www.example.com" port="12345"/> 

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> 
    <constructor-arg ref="mongo"/> 
    <constructor-arg name="databaseName" value="geospatial"/> 
</bean> 

現在我試着保存用戶:

@Autowired 
private UserRepository userRepository; 

public void foo() { 
    User newUser = new User(); 
    newUser.setUsername("Humberd"); 
    newUser.setRole("USER"); 
    userRepository.insert(newUser); 
} 

儘管設置主機「www.example.com」春天還連接到我的本地主機:

org.mongodb.driver.connection   : Opened connection [connectionId{localValue:2, serverValue:42}] to localhost:27017 

我在做什麼錯誤?如何將主機設置爲自定義主機?

+1

你找到任何解決這個。我正面臨類似的問題。 – PKR

回答

0

這裏是我終於做到:

@Configuration 
@EnableMongoRepositories(basePackages = {"com.tryton.repositories"}) 
public class MongoConfig extends AbstractMongoConfiguration { 

    private String host = "myhost"; 
    private int port = 12345; 
    private String databaseName = "fooDB"; 

    @Override 
    protected String getDatabaseName() { 
     return databaseName; 
    } 

    @Override 
    public Mongo mongo() throws Exception { 
     return new Mongo(host, port); 
    } 

}