Es gibt ein Webprojekt mit Spring und MyBatis. Ich benutze IntelliJ IDEA für die Entwicklung. IDEA kann MyBatis-Beans nicht korrekt überprüfen und erzeugt störende Unterstreichungen, obwohl ein Link zum Datenzugriffsobjekt vorhanden ist.
Inspektionskommentar:
Could not autowire. No beans of "ApplicationMapper" type found.
Meine Spring- und MyBatis-Konfigurationen: Frühling:
<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>
Gibt es eine Möglichkeit, dieses kleine Problem zu beheben?
Antworten:
5 für die Antwort № 1@Repository
@Mapper
public interface ApplicationMapper {
wird den Trick tun
3 für die Antwort № 2
Das aktualisierte MyBatis-Plugin wurde behoben und weist dieses Problem nicht auf.
3 für die Antwort № 3
Ich habe das gleiche Problem. In meinem Intelli J-Inspektionsfehler
Konnte nicht automatisch verkabeln. Es wurden keine Beans vom Typ "ApplicationMapper" gefunden. weniger ... (Strg + F1) Überprüft Autowiring-Probleme in einer Bean-Klasse.
in meinem Fall behinderte Inspektionen. (Alt + Schnellkorrektur eingeben oder Einstellungen ändern)
Einstellungen - Editor - Inspektionen - Feder - Federkern - Code - Autowiring für Bean-Klasse - Deaktivieren
(Update vom 27.04.2015) Nach der Installation des myBatis-Plugins hatte ich auch dieses Problem gelöst
3 für die Antwort № 4
Ein anderer Weg ist das Hinzufügen @Component
oder @Repository
zu Ihrer Mapper-Oberfläche.
Sowie:
@Repository
public interface ApplicationMapper {
//...
}
0 für die Antwort № 5
Wie wäre es mit dem Definieren einer neuen Annotation:
@Repository
@Mapper
public @interface MyMapper{
}
@MyMapper
public interface ApplicationMapper {
//...
}
0 für die Antwort № 6
In meinem Fall funktioniert das myBatis-Plugin nicht. Fügen Sie Folgendes hinzu, bevor die Variablendeklaration funktioniert.
@Autowired
@SuppressWarnings("SpringJavaAutowiringInspection")
private ApplicationMapper applicationMapper;@Autowired