@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;
}
}