У меня есть простое приложение загрузки весны, в котором у меня есть объект репозитория jpa, который я хочу сделать autowire внутри класса @Configuration
, как показано ниже.springboot autowiring @Repository внутри @ Конфигурация не работает
@Configuration
public class Appconfig {
@Bean
@Autowired
public PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer(OctopusPropertiesRepository repo) {
PropertySourcesPlaceholderConfigurer property = new PropertySourcesPlaceholderConfigurer();
Map<String,Object> props = new ConcurrentHashMap<>();
List<OctopusProperties> loadedSettings = repo.findAll();
loadedSettings.forEach(entry -> props.put(entry.getKey(), entry.getValue()));
MutablePropertySources mutablePropertySources = new MutablePropertySources();
mutablePropertySources.addFirst(new MapPropertySource("custom", props));
property.setPropertySources(mutablePropertySources);
return property;
}
}
А вот @Repository
класс
@Repository
public interface OctopusPropertiesRepository extends JpaRepository<OctopusProperties, Long> {
}
И я получаю следующее исключение.
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.example.app.OctopusPropertiesRepository]
Если я не делаю эту конфигурацию и загрузочное приложение успешно, я вижу на приводе, что bean доступен. В чем проблема? почему я не могу подключить @Repository
внутри @Configuration
.
P.S. Эти два файла java находятся в одной папке: com.example.app
P.P.S. Eclipse, вид моего проекта:
Включает класс, который сканирует компоненты. Пожалуйста, также включите пакеты в списки. Вероятно, основной класс? – luboskrnac
Основной класс находится в корневом пакете и все остальные классы в одном пакете. Я думаю, что это несколько связано с временем, потому что весна генерирует этот компонент, если я не использую эту конфигурацию. – cacert
Если вы добавляете простой элемент, как показано ниже, в классе конфигурации весна находит его[email protected] OctopusPropertiesRepository octopusPropertiesRepository –