Pregunta

Estoy intentando probar la opción Autowire como esto:

@ContextConfiguration(locations = { "classpath:applnContext.xml" })
public class Foo {
    @Autowired
    private Bar bar;

    public Bar getBar() {
        return bar;
    }

    public void setBar(final Bar bar) {
        this.bar = bar;
    }

    public static void main(final String[] args) {
        final Foo f = new Foo();
        System.out.println(f.getBar());
    }
}

y el archivo de configuración:

<?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-3.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <bean id="bar" class="entity.Bar"></bean>
    <context:annotation-config />

</beans>

Pero el objeto Bar no está siendo inyectado. Me estoy perdiendo algo aquí o haciendo algo mal?

Tenga en cuenta que estoy especificando el archivo applicationContext mediante anotación en la clase.

¿Fue útil?

Solución

El @ContextConfiguration atributo es parte del paquete org.springframework.test, por lo que no va a funcionar de la manera que ha intentado usarlo. Ver este post en los foros de la primavera para más detalles.

Otros consejos

Si se trata de una unidad de prueba, como parece, complemento

@RunWith(SpringJUnit4ClassRunner.class)

Y en su applicationContext.xml no se olvide de esto (aunque en este caso no es el problema)

<context:component-scan base="org.basepackage" />
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top