2 个回答

你第一个MusicController 使用了 @Controller 注解,使用了该注解并且该类的包在spring的包扫描范围内,则这个类就会被spring托管了,只有被spring托管的类,才能被spring注入其他的类。

你第二个类CeshiThreadController 没有使用@Controller 注解,spring 不会帮你管理这个类,自然也就注入不了BookDao了。
你的这个问题解决有两种方式:
1.在CeshiThreadController 前面加入spring相关的注解,如@Controller @Component
2.还有一只方法,我看你是继承了Thread,一般这种方式,你可以通过CeshiThreadController的构造函数将BookDao 构造进去即可。

public class CeshiThreadController extends Thread {

    private BookDao bookDao;
    public CeshiThreadController(BookDao bookDao) {
        this.bookDao = bookDao;
    }
    
    @Override
    public void run() {
        Book book = new Book();
        bookDao.add(book);
    }
}

没有声明为一个Spring Bean交给Spring容器来管理。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏