Как вы создаете прототип @Bean с аргументами времени выполнения?С getBean(String name, Object... args)
?Мой вопрос является следствием этого вопроса .
Почему этот подход не используется или не упоминается в документации Spring IoC ?
Это нормальный подход ?Есть ли более правильный подход для создания прототипа @Bean с аргументами времени выполнения?
Если это не нормальный подход, можете ли вы объяснить, почему?Обратите внимание, что мне нужно установить мои аргументы через конструктор, не через сеттеры.
@Autowired
private ApplicationContext appCtx;
public void onRequest(Request request) {
//request is already validated
String name = request.getParameter("name");
Thing thing = appCtx.getBean(Thing.class, name);
//System.out.println(thing.getName()); //prints name
}
-
public class Thing {
private final String name;
@Autowired
private SomeComponent someComponent;
@Autowired
private AnotherComponent anotherComponent;
public Thing(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
}