весна - как автоматически подключить источник данных?
У меня возникли проблемы с autowire и DI в целом, поэтому я надеюсь, что кто-то может помочь, потому что яя застрял на несколько дней.
Это код:
@Service
public class TicketsController implements Controller {
private TicketManager ticketManager;
@Autowired
public void setTicketManager(TicketManager ticketManager) {
this.ticketManager = ticketManager;
}
...
}
@Service
public class SimpleTicketManager implements TicketManager {
private TicketsDao ticketsDao;
@Autowired
public void setTicketsDao(TicketsDao ticketsDao) {
this.ticketsDao = ticketsDao;
}
...
}
@Repository
public class JdbcTicketDao implements TicketsDao {
private DataSource dataSource;
@Autowired
public void setDataSource(DataSource dataSource) {
this.dataSource=dataSource;
this.jdbcTemplate = new JdbcTemplate(this.dataSource);
}
...
}
public final class AppContext {
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
BeanFactory factory = context;
TicketsController ticketsController = (TicketsController) factory.getBean("ticketsController");
}
...
}
В моем beans.xml яу нас есть:
Это нет работаю и получаю:
Error creating bean with name 'jdbcTicketDao': Injection of autowired dependencies failed
... nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
No matching bean of type [javax.sql.DataSource] found for dependency.`
Может кто-нибудь помочь с этим? Что я делаю неправильно? Кажется, что автопроводка работает все до следующего шага, где он терпит неудачу при внедрении dataSource.
РЕДАКТИРОВАТЬЯ играл с кодом и забыл @Autowire перед setDataSource (), но он должен быть там.