Вы не указали, где в классе Purchase вы можете получить исключение NullPointerException, но я подозреваю, что это происходит в конструкторе, потому что это имело бы смысл.
Автоматическое подключение происходит после построения объекта.,Следовательно, ваш autowired cartService является нулевым в вашем конструкторе.Если есть метод, аннотированный @PostConstruct
, то он вызывается после автопроводки - тогда ваш сервис будет там.
Или вы можете переключиться с внедрения поля на внедрение конструктора.Благодаря внедрению конструктора cartService будет уже доступен в конструкторе.
@Route("purchase")
@Component
@UIScope
public class Purchase extends VerticalLayout {
// no annotation here!
CartService cartService;
//this way cartService is not null in constructor
@Autowired
public Purchase(CartService cartService){
this.cartService = cartService;
}
}