@EnableMongoRepositories 开启mongo
mongo的最简单配置
@Configuration
@EnableMongoRepositories(basePackages = "spittr.mongo")
public class MongoConfig extends AbstractMongoConfiguration {
@Autowired
private Environment env;
@Override
protected String getDatabaseName() {
return env.getProperty("mongo.dbname");
}
@Override
public Mongo mongo() throws Exception {
//需要mongoDB 凭证
// MongoCredential credential = MongoCredential.createCredential("username", "databaseName",
// "password".toCharArray());
// return new MongoClient(
// new ServerAddress(env.getProperty("mongo.host"), env.getProperty("mongo.port", Integer.class)),
// Arrays.asList(credential));
return new MongoClient(env.getProperty("mongo.host"), env.getProperty("mongo.port", Integer.class));
}
}
编写 MongoRepository
public interface MRepositoy extends MongoRepository<MongoDocument, String>, SpittrMongoOperations {
List<MongoDocument> findByUsername(String name);
@Query("{'id':'6','name':?0,'password':?1}")
List<MongoDocument> findByUsernameAndPassword(String name, String password);
}
扩展MongoRepository的
public interface SpittrMongoOperations {
List<MongoDocument> findGo();
}
实现SpittrMongoOperations 注意 类名称要与MRepositoy 一致 spring会自动加载扩展名已Impl结尾的类
public class MRepositoyImpl implements SpittrMongoOperations {
@Autowired
private MongoOperations mongoOperations;
@Override
public List<MongoDocument> findGo() {
return mongoOperations.findAll(MongoDocument.class);
}
}
Document 类
@Document 声明此类为mongo中对应的文档
@Document(collection="user")
public class MongoDocument {
@Id
private String id;
@Field("name")
private String username;
private String password;
public String getId() {
return id;
}
public MongoDocument(String id, String username, String password) {
super();
this.id = id;
this.username = username;
this.password = password;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}