2016-10-01 80 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); 
    } 

}