Autowire

blindmind

Mitglied
Hallo zusammen!

Kurze Frage:

Ich habe einen Spring Service Interface UserServive...

Java:
public interface UserService
{
	User saveUser(User user);
...
}

..und eine Implementierung UserServiceImpl...

Java:
@Service
public class UserServiceImpl implements UserService
{
...
}

Wenn ich nun einen JUnit-Test für diesen Service schreibe, bekomme ich folgenden Fehler:

Code:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'net.twentyfourseven.blog.service.UserServiceImplTest': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: public net.twentyfourseven.blog.service.UserServiceImpl net.twentyfourseven.blog.service.UserServiceImplTest.userService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [net.twentyfourseven.blog.service.UserServiceImpl] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
....

Wenn ich das dem Service zugrundeliegende Repository teste, ist alles gut, nur beim Service klappt das @Autowire, also eine Schicht höher nicht....

Weiß jemand warum?????
 

Noctarius

Top Contributor
Hast du denn auch den Annotation Scanner aktiviert? Falls nicht musst du im AppContext explizit eine Instanz der Implementierung als Bean erstellen.
 

blindmind

Mitglied
Wie mach ich das?

Aber wie gesagt, wenn ich das Repository teste, an welches der Service delegiert, funktionierts...Naja, ich schau morgen nochmal, Betriebsblindheit macht sich breit...
 

blindmind

Mitglied
Ach so, im Test sieht es so aus..

Java:
@RunWith(SpringJUnit4ClassRunner.class)
@TransactionConfiguration(transactionManager="transactionManager")
@ContextConfiguration(locations={ "file:src/main/webapp/WEB-INF/spring/root-context.xml" })
@Transactional
public class UserServiceImplTest
{
	@Autowired
	public UserService userService;
...
 

blindmind

Mitglied
Hat sich gerade erledigt...

Hatte meinen Component-Scan in in der von Eclipse angelegten Datei controllers.xml liegen, und diese nicht im Test angegeben...

Jetzt läufts gut...

Danke für die Hilfe!!

Markus
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Spring Autowire innerhalb von abstrakten Klassen Application Tier 2

Ähnliche Java Themen

Neue Themen


Oben