Создадим класс singleton Car:
@Component
@Scope("prototype")
public class Passenger {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@Component
public class Car {
@Lookup
public Passenger createPassenger() {
return null;
};
public String drive(String name) {
Passenger passenger = createPassenger();
passenger.setName(name);
return "car with " + passenger.getName();
}
}
Но рекомендуется использовать подход через "ObjectProvider<T>"
@Component используется для автоматического определения компонентов при сканировании classpath, в то время как @Bean используется для явного определения бинов в Java-конфигурации. В обоих случаях, конечной целью является создание бинов.