No bean named 'usersRepository' available

No bean named 'usersRepository' available
WC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 137
0

Przerabiam kursy Pana Owczarka.
W połowie przerabiania tego filmiku wyrzuca mi błąd:

Kopiuj
Exception in thread "main" org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'usersRepository' available
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:687)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1207)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1084)
	at info.owczarek.springtutorial.Main.main(Main.java:14)

Main

Kopiuj
public static void main(String[] args) {
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:konfiguracja.xml");
		
		UsersRepository usersRepository = context.getBean("usersRepository", UsersRepository.class);
		usersRepository.createUser("janek");
	}

UsersRepositoryImpl

Kopiuj
@Service("usersRepository")
public class UsersRepositoryImpl implements UsersRepository {

	@Autowired
	private Logger logger;

	@Override
	public User createUser(String name) {
		logger.log("Tworzenie użytkownika " + name);
		return new User(name);
	}

	@Override
	public void setLogger(Logger logger) {
		this.logger = logger;
	}

}

konfiguracja

Kopiuj
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd">

	<!-- <bean id="logger" class="info.owczarek.springtutorial.implementations.LoggerImpl" 
		/> <bean id="usersRepository" class="info.owczarek.springtutorial.implementations.UsersRepositoryImpl" 
		autowire="byType" /> -->

	<context:annotation-config />
	<context:component-scan base-package="info.owczarek.springutorial" />

</beans>

Struktura projektu

screen.jpg

Proszę o pomoc / wskazówkę / poradę.

  • Rejestracja: dni
  • Ostatnio: dni
0

A błędy jakie wyrzuca?

  • Rejestracja: dni
  • Ostatnio: dni
0

Te usersRepository może musi być napisane z dużej litery UsersRepository.

WC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 137
0
Skromny Jeleń napisał(a):

Te usersRepository może musi być napisane z dużej litery UsersRepository.

Nie działa - próbowałem.
Błędy masz na początku postu.

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

Wrzuć gdzieś na jakiegoś githuba ten projekt, bo zgaduje że klasycznie błąd jest w zupełnie innym miejscu...

  • Rejestracja: dni
  • Ostatnio: dni
0

A masz te ziarenko, w ogóle napisane?

Bo najpierw się piszę ziarnko, a potem można je wykorzystać.

WC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 137
0
Shalom napisał(a):

Wrzuć gdzieś na jakiegoś githuba ten projekt, bo zgaduje że klasycznie błąd jest w zupełnie innym miejscu...

https://github.com/MajorKuprich/Annotation-config

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
1

target, settings :D :D :D
No ale nic to!
Zalecam używać lepszych narzędzi bo IntelliJ od razu pokazuje że pakiet który każesz mu skanować <context:component-scan base-package="info.owczarek.springutorial" /> nie istnieje.
Zauważ że masz tam springutorial a nie springtutorial i IntelliJ pokazuje tez od razu że siłą rzeczy beanów tam nie ma.

Co więcej pokazuje mi tez że zamiast kodować w UTF-8, szczególnie że masz jakieś ogonki i polskie znaczki (!), to kodujesz w jakimś regionalnym kodowaniu...

Dodatkowo w tym kodzie w repo bean to usersRepository a próbujesz brać UsersRepository...

WC
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 137
0
Shalom napisał(a):

target, settings :D :D :D
No ale nic to!

Prawda - te foldery są niepotrzebne.
Projekt wrzuciłem tylko dla was, na chwilę.
Za moment go usuwam.

Zalecam używać lepszych narzędzi bo IntelliJ od razu pokazuje że pakiet który każesz mu skanować <context:component-scan base-package="info.owczarek.springutorial" /> nie istnieje.
Zauważ że masz tam springutorial a nie springtutorial i IntelliJ pokazuje tez od razu że siłą rzeczy beanów tam nie ma.

Nie zauważyłem tego, zwykła literówka.
Zamierzam przerzucić się na IntelliJ - za darmo, wersja dla studentów.
To są moje ostatki w Eclipsie.

Co więcej pokazuje mi tez że zamiast kodować w UTF-8, szczególnie że masz jakieś ogonki i polskie znaczki (!), to kodujesz w jakimś regionalnym kodowaniu...

Cp1250 - nawet nie zwróciłem na to uwagi.

Dodatkowo w tym kodzie w repo bean to usersRepository a próbujesz brać UsersRepository...

Dziękuje za wszystkie uwagi i znalezienie błędu.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.