Кто-нибудь знает, как вызывать бины с динамическими параметрами? Я боролся с этим методом и застрял. Пожалуйста, помогите.
Так вот в чем проблема, я вызываю конструктор через @autowired в StoreService, но сборщик всегда возвращает эту ошибку
Неудовлетворенная зависимость, выраженная через параметр конструктора 0;Вложенное исключение - org.springframework.beans.factory.NoSuchBeanDefinitionException: нет доступного квалифицирующего компонента типа 'java.lang.String': ожидается как минимум 1 компонент, который считается кандидатом на автоматическое подключение. Аннотации зависимостей: {}
Я знаю, что проблема в том, что параметры в конструкторе установлены неправильно, и я не представляю, как определить параметры в конструкторе для выполнения DI. Я уже пробовал разные способы, но все равно получаю ту же ошибку.
Это код, который я сделал.
Класс Config для запуска bean-компонентов.
@Configuration
public class BuilderConfig {
@Bean
@Scope("prototype")
public ObjectBuilder builder(final String title, final String filename, final String text) {
return new ObjectBuilder(title, filename, text);
}
}
ObjectBuilderкласс.
@Component
public class ObjectBuilder {
private String title;
@Autowired(required = false)
public ObjectBuilder(final String title, final String filename, final String text) {
this.title= title;
this.build(filename, text);
}
public void build(String filename, String text) {
// build data
}
public void publish() {
// to publish data
}
}
Класс, для которого вызывается класс построителя.
@service
public class StoreServiceImpl implements StoreService {
@Autowired
private ObjectBuilder builder;
public void save(final String title, final String filename, final String text) {
this.save(builder.publish());
}
}