Spring’s @Autowired doesn’t inject dependency

autowireddependency-injectionspring

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

Best Answer

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());
}