Идея проверяет бин батис маппер неправильно
Есть веб-проект с Spring и MyBatis. Я использую IntelliJ IDEA для разработки. IDEA не может правильно проверять bean-компоненты MyBatis и вызывает раздражающее подчеркивание, хотя ссылка на объект доступа к данным присутствует.
Комментарий инспекции:
Could not autowire. No beans of 'ApplicationMapper' type found.
Мои настройки Spring и MyBatis: Spring:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="configLocation" value="classpath:spring/mybatis-config.xml"/>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.db.gbs.gbsapps.rds.backend.model.integration.mapping"/>
</bean>
mybatis-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<mappers>
<mapper resource="mybatis/ApplicationMapper.xml"/>
</mappers>
</configuration>
Есть ли способ исправить эту маленькую проблему?
7 ответов
Обновленный плагин MyBatis исправлен и не имеет этой проблемы.
@Repository
@Mapper
public interface ApplicationMapper {
сделает свое дело
Другой способ это добавить @Component
или же @Repository
к вашему интерфейсу картографа.
Такие как:
@Repository
public interface ApplicationMapper {
//...
}
У меня та же проблема. В моей ошибке проверки Intelli J,
Не удалось автопровода. Бины типа ApplicationMapper не найдены. less... (Ctrl+F1) Проверяет проблемы с автопроводкой в классе бобов.
в моем случае отключены проверки. (Alt + Enter для быстрого исправления или изменения настроек)
Настройки - Редактор - Проверки - Spring - Spring Core - Код - Автопроводка для класса Bean - отключить
(Обновление от 2015.04.27) После установки плагина myBatis я тоже решил эту проблему
Как насчет определения новой аннотации для удобства:
@Repository
@Mapper
public @interface MyMapper{
}
@MyMapper
public interface ApplicationMapper {
//...
}
В моем случае плагин myBatis не работает. Добавление следующего до объявления переменной будет работать.
@Autowired
@SuppressWarnings("SpringJavaAutowiringInspection")
private ApplicationMapper applicationMapper;@Autowired
@Resource
UserMapper userMapper;
Другая связанная вещь: ресурс против автопроводки