有Spring和MyBatis的网络项目。我使用IntelliJ IDEA进行开发。 虽然存在与数据访问对象的链接,但IDEA无法正确检查MyBatis bean并产生恼人的欠压。
检查评论:
Could not autowire. No beans of 'ApplicationMapper' type found.
My Spring和MyBatis配置: 弹簧:
<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>
有没有办法解决这个小问题?
答案 0 :(得分:13)
@Repository
@Mapper
public interface ApplicationMapper {
会做的伎俩
答案 1 :(得分:4)
另一种方法是将@Component
或@Repository
添加到您的映射器界面。
如:
@Repository
public interface ApplicationMapper {
//...
}
答案 2 :(得分:3)
我遇到了同样的问题。 在我的Intelli J检查错误中,
无法自动装配。的“ApplicationMapper”型无豆中。少...(按Ctrl + F1) 检查bean类中的自动装配问题。
在我的情况下,禁用检查。 (Alt +输入快速修复或更改设置)
设置 - 编辑器 - 检查 - 弹簧 - 弹簧核心 - 代码 - Bean类自动装配 - 禁用
(2015.04.27 update)安装myBatis插件后,我也解决了这个问题
答案 3 :(得分:3)
更新的MyBatis插件已修复,没有此问题。
答案 4 :(得分:0)
如何为方便起见定义新注释:
@Repository
@Mapper
public @interface MyMapper{
}
@MyMapper
public interface ApplicationMapper {
//...
}
答案 5 :(得分:0)
就我而言,myBatis插件不起作用。在变量声明之前添加以下内容将起作用。
@Autowired
@SuppressWarnings("SpringJavaAutowiringInspection")
private ApplicationMapper applicationMapper;@Autowired
答案 6 :(得分:0)
@Resource
UserMapper userMapper;
其他相关内容:resource vs autowired