/ / Idea inspiziert Batis Mapper Bean falsch - Java, Spring, Intellij-Idea, Mybatis, Inspection

Idee inspiziert Batis Mapper Bean falsch - Java, Frühling, Intellij-Idee, Mybatis, Inspektion

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