No bean named 'usersRepository' available

0

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

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

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

UsersRepositoryImpl

@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

<?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ę.

0

A błędy jakie wyrzuca?

0

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

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.

0

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

0

A masz te ziarenko, w ogóle napisane?

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

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

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...

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.

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