Cableado automático de primavera usando @Configurable

Estoy jugando con la idea de usar Spring@Configurable y@Autowire para inyectar DAO en objetos de dominio para que no necesiten un conocimiento directo de la capa de persistencia.

Estoy tratando de seguirhttp://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/aop.html#aop-atconfigurable, pero mi código parece no tener efecto.

Básicamente tengo:

@Configurable
public class Artist {

    @Autowired
    private ArtistDAO artistDao;

    public void setArtistDao(ArtistDAO artistDao) {
        this.artistDao = artistDao;
    }

    public void save() {
        artistDao.save(this);
    }

}

Y:

public interface ArtistDAO {

    public void save(Artist artist);

}

y

@Component
public class ArtistDAOImpl implements ArtistDAO {

    @Override
    public void save(Artist artist) {
        System.out.println("saving");
    }

}

En application-context.xml, tengo:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springsource.org/dtd/spring-beans-2.0.dtd">
<beans>

    <bean class="org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator" />
    <bean class="org.springframework.beans.factory.aspectj.AnnotationBeanConfigurerAspect" factory-method="aspectOf"/>

</beans>

El módulo de resorte para Play! Realiza el escaneo y la inicialización de la ruta de clase. framework, aunque funcionan otros beans con conexión automática, así que estoy bastante seguro de que esta no es la causa raíz. Estoy usando Spring 3.0.5.

En otro código (dentro de un método en bean que se inyecta en mi controlador usando Spring, de hecho), estoy haciendo esto:

Artist artist = new Artist();
artist.save();

Esto me da una excepción NullPointerException al intentar acceder al artista en Artist.save ().

¿Alguna idea de lo que estoy haciendo mal?

Martín

Respuestas a la pregunta(10)

Su respuesta a la pregunta