Could not autowire. No beans of 'UserDAO' type found. more...

本文解决IntelliJ IDEA中使用@Resource或@Autowired时出现的错误提示问题,通过调整IDE设置禁用特定检查来避免误报,适用于Spring框架项目。

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

 

 

 

 

 

虽然给定引用中未直接提及解决“Could not autowire. No beans of 'ExecutorService' type found.”错误的方法,但可以从类似问题的解决思路来推导。 ### 1. 检查依赖 参考解决“Could not autowire. No beans of ‘ServerHttpSecurity‘ type found”的方法,可能是缺少相关依赖。确保项目中包含了与`ExecutorService`相关的依赖。一般来说,Java标准库中就包含`ExecutorService`,如果是Spring项目,要保证Spring相关依赖完整。例如在Maven项目中,确保有Spring Boot核心依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> ``` ### 2. 检查Bean定义 要保证`ExecutorService`的Bean已经被正确定义。可以在配置类中手动定义`ExecutorService`的Bean,示例如下: ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @Configuration public class ExecutorServiceConfig { @Bean public ExecutorService executorService() { return Executors.newFixedThreadPool(10); } } ``` ### 3. 检查组件扫描 确保Spring能够扫描到`ExecutorService` Bean所在的包。在Spring Boot主应用类上添加`@ComponentScan`注解,指定要扫描的包: ```java import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication @ComponentScan(basePackages = "com.yourpackage") public class YourApplication { public static void main(String[] args) { SpringApplication.run(YourApplication.class, args); } } ``` ### 4. 检查IDEA工具问题 参考“IDEA的SpringBoot工程使用@AutoWired注解出现Could not ... No beans of ‘xxxx‘ type found 的错误提示”,有可能是IDEA本身的问题。可以尝试重启IDEA,或者清除缓存并重新导入项目。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值