Spring Injection не работает в другом классе обслуживания - PullRequest
1 голос
/ 25 марта 2011

У меня есть класс

@Service("registrationService")
@Transactional
public class RegistrationService {

@Resource(name="registrationDAO")
 public RegistrationDAO registrationDAO;

В контроллере я могу без проблем получить доступ к службе регистрации и регистрации DAO.

У меня есть другой класс

@Service("securityService")
public class SecurityService implements UserDetailsService {

 protected static Logger logger = Logger.getLogger("service");

 @Resource(name="registrationDAO")
 public RegistrationDAO registrationDAO;


  public String test(){
        logger.debug(registrationDAO.findUserByID(1) );
    return "Testing";
  }

Теперь, если я вызываю тестовую функцию в контроллере, это дает исключение нулевого указателя при регистрацииDAO

1 Ответ

2 голосов
/ 25 марта 2011

Все ваши аннотированные классы @Service, @Repository, @Controller, @Component (и т. Д.) Должны иметь пружинное управление, чтобы работала автоматическая разводка. Убедитесь, что они обнаружены весенним сканированием путей к классам:

<context:component-scan base-package="com.company" />

В некоторых случаях @Autowire, который выполняет автоматическую разводку по типу, может быть полезным, чтобы избежать аргумента name, который вы вводите с @Resource.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...