Witam,
Piszę z oto takim problemem. Chcę stworzyć pierwszą aplikacje w springu do prostej rejestracji z wykorzystaniem mysql i jpa. Wszystko napisane ale po wpisaniu danych dostaje błąd "this.userService" is null
, po próbie dodania adnotacji mam błąd Field userRepository in strona.service.UserService required a bean of type 'strona.repository.UserRepository' that could not be found.
dziękuję za każdą pomoc. Niżej kod:
Skąd ta wkurzajaca maniera wklejania obrazków?
Bym Ci zmodyfikował, a tak to kiszka. HGW jakie błędy ma w nazwach pakietów itd ...
Zdaniem mało aktywnego springowca brakuje @Autowired, dlatego jest null.
Dalsza część opisu jest niejasna. Błąd tradycyjnie kieruje myślenie jako "błąd kompilacji", czy to wyjątek, czy jeszcze jakiego charakteru ten "błąd"
Obrazek z "register_form", bo nazwę tego kodem, mam wrażenie programowałeś probabilistycznie.
Tego null-a powinieneś sam przemyśleć i znaleźć - jeśli nie, tzn za mało jesteś ugruntowany w zwykłej Javie i za wcześnie jest na czary Springa.
@AnyKtokolwiek: @Autowired jest od jakiegoś czasu przestarzałe. Teraz używamy konstruktorów do wstrzykiwania.
Powinieneś w klasie UserService UserRepository ustawić poprzez konstruktor.
Jeśłi to nie pomoże to sprawdź czy masz poprawne patche przy importach bo mogło się zdarzyć tak że zaimportowałeś UserRepository z innego patcha, nie z Twojego.
@Sumekprog: importy się zgadzają po ustawieniu konstruktora dostaję taki komunikat:
Parameter 0 of constructor in strona.service.UserService required a bean of type 'strona.repository.UserRepository' that could not be found.
Action:
Consider defining a bean of type 'strona.repository.UserRepository' in your configuration.
2020-12-28 14:19:36.536 WARN 420 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController' defined in file [C:\Users\tomek\Documents\workspace-spring-tool-suite-4-4.8.1.RELEASE\first\target\classes\strona\controller\UserController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userService' defined in file [C:\Users\tomek\Documents\workspace-spring-tool-suite-4-4.8.1.RELEASE\first\target\classes\strona\service\UserService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'strona.repository.UserRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
https://stackoverflow.com/questions/53172317/spring-componentscan-doesnt-work-on-repository
Ale tylko zgaduje (jakoś dawno w springu nie grzebałem (co się powyczyniało:-) )).
@tomey: wywal componentscan, powinno pomóc.
Tak na moje oko to FirstApplication
jest w paczce na tym samym poziomie co cała reszta, przez co adontacja SpringBootApplication jak robi wyszukiwanie komponentów to szuka w głąb paczki strona.application
i nie może znaleźć beana bo go tam nie ma. Najszybsze rozwiązanie to przeniesienie klasy FirstApplication
o poziom wyżej.
Problem rozwiązany przez dodanie
@EntityScan("strona.model")
@EnableJpaRepositories({"strona.repository","strona.aplication"})