@Autowired
был удален по этому вопросу: https://code.google.com/p/mybatis/issues/detail?id=763
В рамках общей цели, MyBatis не следует делать сильные утверждения, такие как «В ApplicationContext есть только один sqlSessionFactory», поэтому @Autowired
был удален.
В качестве обходного пути, вы можете написать свой собственный MyAppSqlSessionDaoSupport
, который расширяет SqlSessionDaoSupport
, и переопределить setSqlSessionFactory(...)
с
@Autowired
public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
if (!this.externalSqlSession) {
this.sqlSession = new SqlSessionTemplate(sqlSessionFactory);
}
}
Затем сделать ваши объекты DAO расширяет MyAppSqlSessionDaoSupport
вместо SqlSessionDaoSupport
.
Попробуйте ввести его из контекстного файла xml – Elbek
У меня есть более 50 daos, которые расширяют этот класс, и daos объявляются с помощью компонента-сканирования. Вы предлагаете mannualy объявить 50 даос в xml? – maks
также у меня много тестовых классов, которые также расширяют этот класс (возможно, не напрямую). Должен ли я также объявлять тестовые классы в XML-файле? – maks