你第一个MusicController 使用了 @Controller 注解,使用了该注解并且该类的包在spring的包扫描范围内,则这个类就会被spring托管了,只有被spring托管的类,才能被spring注入其他的类。 你第二个类CeshiThreadController 没有使用@Controller 注解,spring 不会帮你管理这个类,自然也就注入不了BookDao了。你的这个问题解决有两种方式:1.在CeshiThreadController 前面加入spring相关的注解,如@Controller @Component2.还有一只方法,我看你是继承了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); } }
你第一个MusicController 使用了 @Controller 注解,使用了该注解并且该类的包在spring的包扫描范围内,则这个类就会被spring托管了,只有被spring托管的类,才能被spring注入其他的类。
你第二个类CeshiThreadController 没有使用@Controller 注解,spring 不会帮你管理这个类,自然也就注入不了BookDao了。
你的这个问题解决有两种方式:
1.在CeshiThreadController 前面加入spring相关的注解,如@Controller @Component
2.还有一只方法,我看你是继承了Thread,一般这种方式,你可以通过CeshiThreadController的构造函数将BookDao 构造进去即可。