Reputation: 28860
I have a project that consists of various modules. Basically, I've worked with Spring MVC & JUnit 4, and everything was working good. But Now, I added few classes which aren't related to testing or MVC, and the @Autowired annotation doesn't inject objects to them. The same objects are injected to the MVC and JUnit classes, so I realy confused.
This is the Spring Context XML:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
<context:component-scan base-package="com.justic.more" />
<mvc:annotation-driven />
<context:annotation-config />
<bean id="monkDAO" class="com.justic.more.data.monkDAO" />
<bean id="BidDAO" class="com.justic.more.data.BidDAO" />
</beans>
The Class that I want to inject to:
@Component
Public Class Tesser {
@Autowired
MonkDAO monkdao;
...
blablabla
...
}
Upvotes: 0
Views: 5543
Reputation: 10369
From the chat with OP it became clear that he created the object like Tesser tesser = new Tesser()
instead of injecting it into the test class.
Spring has no chance to autowire dependencies in beans that it does not create itself.
The solution is to autowire the Tesser
object into the test class so Spring can inject the dependencies.
@Autowired
private Tesser tesser;
@Test
public void testSth() {
assertTrue(tesser.someBoolReturningMethodUtilizingMonkDAO());
}
Upvotes: 6
Reputation: 308733
Add qualifiers:
@Resource(name = "monkDAO")
If you start with annotations, go all the way.
Upvotes: 0