过去 Liberty 有一个专门mongodb-2.0
用于 server.xml 的功能,但是这个功能提供的好处非常少,因为您仍然需要带上自己的 MongoDB 库。此外,随着时间的推移,MongoDB 对其 API 进行了重大的重大更改,包括如何配置 MongoDB。
由于 MongoDB API 在不同版本之间发生了如此巨大的变化,我们发现最好不要在 Liberty 中提供任何新的 MongoDB 功能,而是建议用户简单地使用这样的 CDI 生产者:
CDI 生产者(也拥有任何配置):
@ApplicationScoped
public class MongoProducer {
@Produces
public MongoClient createMongo() {
return new MongoClient(new ServerAddress(), new MongoClientOptions.Builder().build());
}
@Produces
public MongoDatabase createDB(MongoClient client) {
return client.getDatabase("testdb");
}
public void close(@Disposes MongoClient toClose) {
toClose.close();
}
}
示例用法:
@Inject
MongoDatabase db;
@POST
@Path("/add")
@Consumes(MediaType.APPLICATION_JSON)
public void add(CrewMember crewMember) {
MongoCollection<Document> crew = db.getCollection("Crew");
Document newCrewMember = new Document();
newCrewMember.put("Name",crewMember.getName());
newCrewMember.put("Rank",crewMember.getRank());
newCrewMember.put("CrewID",crewMember.getCrewID());
crew.insertOne(newCrewMember);
}
这只是基础知识,但以下博客文章将更详细地介绍代码示例:
https ://openliberty.io/blog/2019/02/19/mongodb-with-open-liberty.html