Я создаю API-интерфейс службы REST и из контроллера REST я хотел бы вызвать другой класс реализации.Из MyController я создаю bean-компонент ServiceImpl, а ServiceImpl использует объект Customer.(Только для тестирования клиента ожидается синглтон)Я пытаюсь получить доступ к bean-компоненту внутри bean-компонента-прототипа, но он не работает с Null Pointer.
@RestController
public class MyController {
static int i = 0;
public MyController() {
System.out.println("Inside Controller");
}
@RequestMapping("/")
public int post(ServiceImpl impl) {
return impl.name(i++);
}
}
public class Customer {
String name;
public Customer() {
System.out.println("inside customer cons");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
@Configuration
public class ServiceConfigurations {
@Bean
public Customer Customer() {
return new Customer();
}
}
@Component
@Scope(value = "prototype")
public class ServiceImpl {
int i = 0;
@Autowired
Customer c;
public int name(int name) {
c.getName(); // Fails with null pointer
return i++;
}
}
Может лиодна подсказка, почему @Autowire for Customer не устанавливает ссылку?