Я создаю веб-приложение, используя spring, в web.xml. Я определил context-param для поиска файла application-context.xml, который сканирует все, кроме контроллеров и app-servlet.xml, который сканирует только для контроллеров.Нужно ли создавать классы, которые используют DI, только через DI?
приложения context.xml содержит источник данных к базе данных, и я впрыснуть в источник данных DAOS так:
@Autowired
DataSource dataSource;
Теперь, если я пытаюсь создать DAO вручную в контроллере (я знаю, что, вероятно, должен использовать для этого сервисы, но сейчас это просто для тестирования). Я получаю исключение из null-указателя, однако, когда я вставляю DAO, он загружается правильно.
Так почему это происходит? DAO не управляются контейнером DI только для источника данных, поэтому почему я не могу создать dao вручную?
Итак, чтобы быть понятным, если класс использует DI, его можно создать только через DI из этой точки, кроме использования манипуляции с байтовым кодом? –
@JohnSmith Да; 'new' - это Java-конструктор. Spring не задействован вообще. –