У меня есть Java-код, в котором я хочу передать имя коллекции mongodb из файла свойств, или я не хочу жестко кодировать его в Java.Это то, что я уже пробовал, но, кажется, он не работает.
У меня есть POJO как:
@Document(collection = "${@DatabaseRepositoryCustom.getCollectionName()}")
public class A{}
У меня один интерфейс as:
@Repository
public interface Repo extends MongoRepository<A, String> ,DatabaseRepositoryCustom {
}
У меня второй интерфейс as:
public interface DatabaseRepositoryCustom {
String getCollectionName();
void setCollectionName(String collectionName);
}
У меня класс реализации второго интерфейса как:
public class DatabaseRepositoryCustomImpl implements DatabaseRepositoryCustom {
private static String collectionName = "Emp";
@Override
public String getCollectionName() {
// TODO Auto-generated method stub
return null;
}
@Override
public void setCollectionName(String collectionName) {
// TODO Auto-generated method stub
this.collectionName = collectionName;
}
}
У меня есть класс контроллера , который снова задает имя коллекции (просто для проверки):
public class Controller {
@Autowired
private Repo rp;
@PostConstruct
public void init() throws IOException {
rp.setCollectionName("Emp1");
}
}
Поэтому я подумал и спросил, могу ли яиспользовать этот подход для передачи имени коллекции Mongo с помощью файла свойств?Если да, то как мне этого добиться, потому что при таком подходе я не могу получить имя коллекции и получаю ошибку как:
, вызванную: org.springframework.data.mongodb.UncategorizedMongoDbException: запрос не выполнен с кодом ошибки 73 и сообщением об ошибке «Указано неверное имя коллекции» db_name. $ {@ DatabaseRepositoryCustom.getCollectionName ()} '
Если нет, то как бы передать его с помощью файлов свойств