Я могу получить данные из MongoDB, используя следующий код, но я хочу предоставить эти данные из Runner CommandLineRunner другому классу.
@Repository
public interface ToolsDao extends MongoRepository< Tools, String> {
public List<Tools> findByRegistries_active(boolean active);
}
Кроме того, я написал класс как с методами получения и установки сконструкторы.
public class Tools{
@Id
private String id;
private String type;
private List<Registries> registries;
И для реестров, которые у меня есть,
public class Registries {
private String name;
private String url;
private String secret;
private boolean active;
@Bean
CommandLineRunner runner(ToolsDao toolsDao) {
return new CommandLineRunner() {
@Override
public void run(String... args) throws Exception {
Registries activeRegistry = null;
Iterable<Tools> toolsList= toolsDao.findByRegistries_active(true);
System.out.println("Configuration : ");
for (Tools tools : toolsList) {
for (Registries registry : config.getRegistries()) {
if(registry.getActive()) {
activeRegistry = registry;
break;
}
}
}
System.out.println("active registry name is " + activeRegistry.getName());
System.out.println("active registry url " + activeRegistry.getRegistryUrl());
}
};
}
Я получаю вывод в вышеуказанной функции, но если я хочу использовать в любой другой функции, то этодавая нулевые значения.
public class RegistryController2 {
@Autowired
ToolsDao toolsDao;
public Registries getData() {
Registries activeRegistry = null;
Iterable<Tools> personList = toolsDao.findByRegistries_active(true);
System.out.println("Configuration : ");
for (Tools tools : toolsList) {
for (Registries registry : tools.getRegistries()) {
if(registry.getActive()) {
activeRegistry = registry;
break;
}
}
}
System.out.println("active registry name is " + activeRegistry.getName());
System.out.println("active registry url " + activeRegistry.getRegistryUrl());
}
База данных MongoDB:
Given below is MongoDB Collection from database test. and collection name is switchrepo.
"_id" : "1234567890",
"type" : "toolss",
"registreis" : [
{
"name" : "test",
"url" : "test1",
"secret" : "secret",
"active" : true
},
{
"name" : "test2",
"url" : "test12",
"secret" : "secret2",
"active" : false
}
]
}