Ошибка @Autowire с @Repository
Я не могу заставить аннотацию @Autowire работать с аннотированным классом @Repository.
У меня есть интерфейс:
public interface AccountRepository {
public Account findByUsername(String username);
public Account findById(long id);
public Account save(Account account);
}
И класс, реализующий интерфейсаннотируется @Repository:
@Repository
public class AccountRepositoryImpl implements AccountRepository {
public Account findByUsername(String username){
//Implementing code
}
public Account findById(long id){
//Implementing code
}
public Account save(Account account){
//Implementing code
}
}
В другом классе мне нужно использовать этот репозиторий, чтобы найти учетную запись по имени пользователя, поэтому я использую автопроводку, но я проверяю, работает ли она, и экземпляр accountRepositoryвсегда нуль:
@Component
public class FooClass {
@Autowired
private AccountRepository accountRepository;
...
public barMethod(){
logger.debug(accountRepository == null ? "accountRepository is NULL" : "accountRepository IS NOT NULL");
}
}
Я также установил пакеты для сканирования компонентов (sessionFactory.setPackagesToScan(new String [] {"com.foo.bar"});
), и он автоматически связывает другие классы, аннотированные, например, @Component, но в этом, аннотированном @Repository, он всегда равен нулю.
Я что-то пропустил?