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<News> 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 勾去掉