intellig idea 使用@Resource或者@Autowire报错,出现红色波浪线;在确定不是代码出错的问题下,
可以隐藏这个提示
报错提示:
Could not autowire. No beans of 'UserDAO' type found。(Ctrl+F1) Checks autowiring problems in a bean class.
@Mapper //使用Mapper注解方式,开启扫描
public interface UserDAO {
String TABLE_NAME = "user";
String INSERT_FIELDS = " name, password, salt, head_url ";
String SELECT_FIELDS = " id, name, password, salt, head_url ";
@Insert({
"insert into ", TABLE_NAME, "(", INSERT_FIELDS,
") Values (#{name}, #{password}, #{salt}, #{headUrl})"
})
int addUser(User user);
@Select({"select ", SELECT_FIELDS, " from ", TABLE_NAME, " where id=#{id}"})
User selectById(int id);
@Update({"update ", TABLE_NAME, " set password = #{password} where id=#{id}"})
void updatePassword(User user /*set password= #{password} where id=#{id}*/);
@Delete({"delete from ", TABLE_NAME, " where id = #{id}"})
void deleteById(int id);
}
@Mapper
public interface NewsDAO {
String TABLE_NAME = "news";
String INSERT_FIELDS = " title, link, image, like_count, comment_count,created_date,user_id ";
String SELECT_FIELDS = " id, " + INSERT_FIELDS;
@Insert({
"insert into ", TABLE_NAME, "(", INSERT_FIELDS,
") Values (#{title},#{link},#{image},#{likeCount}, #{commentCount},#{createdDate},#{userId})"
})
int addNews(News news);
@Select({"select ", SELECT_FIELDS, " from ", TABLE_NAME, " where id=#{id}"})
News selectById(int id);
List selectByUserIdAndOffset(@Param("userId") int userId, @Param("offset") int offset,
@Param("limit") int limit);
}
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = ToutiaoApplication.class)
//@WebAppConfiguration 这行会修改默认的启动路径需要注释掉
@Sql({"/init-schema.sql"})
public class InitDatabaseTests {
@Autowired //报错Could not autowire. No beans of 'UserDAO' type found. more...
NewsDAO newsDAO;
@Autowired
UserDAO userDAO;
...
}
解决办法:
Settings - Editor - Inspections - Spring - Spring Core - Code - Autowiring for Bean Class 勾去掉