Автоподключение Spring с использованием @Configurable

Я ' m играет с идеей использования Spring @Configurable и @Autowire для внедрения DAO в объекты домена, чтобы им не требовалось непосредственное знание уровня персистентности.

Я пытаюсь следовать http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/aop.html#aop-atconfigurable , но в моем коде нет эффект.

По сути, у меня есть:

@Configurable
public class Artist {

    @Autowired
    private ArtistDAO artistDao;

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

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

}

И:

public interface ArtistDAO {

    public void save(Artist artist);

}

и

@Component
public class ArtistDAOImpl implements ArtistDAO {

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

}

В application-context.xml у меня есть:





    
    


Сканирование и инициализация пути к классам выполняется модулем spring для Play! framework, хотя другие компоненты с автоматическим подключением работают, поэтому я уверен, что это не основная причина. Я использую Spring 3.0.5.

В другом коде (фактически внутри метода в bean-компоненте, который вводится в мой контроллер с помощью Spring) я делаю следующее:

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

Это дает мне исключение NullPointerException при попытке доступа к artistDao в Artist.save ().

Есть идеи, что я делаю не так?

Мартин

32
задан Sean Patrick Floyd 17 January 2011 в 11:02
поделиться