Создадим класс 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-конфигурации. В обоих случаях, конечной целью является создание бинов.