Spring boot dostęp do userrepo i service raz działa a raz nie..

0

Witajcie
Próbuje poełnić apkę która ma mi ułatwić życie w pracy I zastąpić Excel w zapisywaniu co kiedy kto pożyczył (chodzi o nieco większe przedmioty niż długopis)
Wymyśliłem że sprzęgnie Vaadin I Spring(Boot), działa mi już logowanie to uproszczonej wersji serwisu i cześciowo dostęp do bazy danych ale na pewno ma coś "zepsute" bo o ile wypełnienie Grida użytkownikami zaciągniętymi z bazy mi działa:

@Autowired
private UserRepository userrepo;
grid = new Grid();
grid.setContainerDataSource(new GeneratedPropertyContainer(new BeanItemContainer(User.class, userrepo.findAll())));

To póżniej chcę zaznaczonemu użytkownikowi zmienić hasło, czyli:

getUI().addWindow(new passwordChangerWindow(User));())));

i w skrócie dalej kod okienka

@Autowired
private UserService userService;
@Autowired
private UserRepository userRepository;

TextField pwd1 = new TextField();
Button Submit = new Button();
Submit.addClickListener(new ClickListener() {
public void buttonClick(ClickEvent event) {
userService.changeUserPassword(user, pwd1.getValue());
System.out.println(userRepository.count());

błąd jaki dostaje to:

**java.lang.NullPointerException: null at org.gz.UI.passwordChangerWindow$1.buttonClick(passwordChangerWindow.java:69) ~[classes/:na]**
//tzn nie działa anie useRepository anu userService.. Gdzie szukać błędu?

1

o_O obiekty tworzone przez new nie są zarządzane przez kontener IoC więc nic nie zostanie do nich wstrzyknięte!

0

Czyli problem leży tu

getUI().addWindow(new passwordChangerWindow(User));())));

głupi ten Spring ;)
muszę wymyślić jakiś inny sposób na otwarcie czegoś oknopodobnego...
Jeśli ktoś ma propozycję to chętnie wysłucham a jak nie to dzięki za pomoc!

0

Nie spring głupi tylko ty piszesz gówniany kod. O MVC/MVP kiedyś słyszałeś? Widok nie powinien mieć wstrzykiwanych żadnych serwisów ani bezpośrednio komunikować się z warstwą logiki.

0

Właśnie dlatego napisałem ze głupi i się nie domyślił co chcę. to że mój kod jest gówniany to wiem choc powinno się użyć bardziej dosadnego stwierdzenia ;)
Jeszcze raz dzięki za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1