Я использую javaee 8 для своего проекта и у меня есть следующие классы:
public class PersonRepository {
@Inject
@Mongo(collection = "users")
private MongoCollection collection;
// define some methods ....
}
@ApplicationScoped
public class MongoProducer {
@Inject
private MongoClient mongoClient;
@Produces
@Mongo
protected MongoCollection produceCollection(InjectionPoint ip) {
Mongo mongo = getMongoAnnotation(ip);
return mongoClient.getDatabase("sample").getCollection(mongo.collection());
}
private Mongo getMongoAnnotation(InjectionPoint ip) {
return ip.getAnnotated().getAnnotation(Mongo.class);
}
}
@MongoClientDefinition(
name = "mongoClient",
dbName = "sample",
username = "admin",
password = "adminpass"
)
public class MongoConnectionConfig {
}
К сожалению, mongoClient не имеет никакого метода для получения имени базы данных, в настоящее время связанного с этим.(может быть, я не могу найти это!)
Как можно сканировать аннотацию MongoClientDefinition из метода yieldCollection?
Я хочу установить имя базы данных из этой аннотации.(заменить "образец").
Примечание : Я создал расширение CDI для MongoClientDefinition.