
java 线程类注入问题
在 java 中,线程类无法使用 @autowired 注入依赖项,这是因为线程类不是 spring 管理的 bean。为了解决这个问题,可以使用构造注入的方法。
以下示例代码展示了如何通过构造注入向线程类注入依赖项:
线程类:
立即学习“”;
public class mythread extends thread {
private myinterface myinterface;
private myservice myservice;
public mythread(myinterface myinterface, myservice myservice) {
this.myinterface = myinterface;
this.myservice = myservice;
}
@override
public void run() {
// 使用注入的依赖项
...
}
}
登录后复制
调用:
myinterface myinterface = new myinterfaceimpl(); myservice myservice = new myserviceimpl(); mythread mythread = new mythread(myinterface, myservice); mythread.start();
登录后复制
注入:
在 spring 配置文件中,需要将线程类声明为 bean,并使用构造函数注入依赖项:
<bean id="myThread" class="com.example.mypackage.MyThread">
<constructor-arg ref="myInterface" />
<constructor-arg ref="myService" />
</bean>
登录后复制
以上就是Java 线程类如何注入依赖项?的详细内容,更多请关注IDCBABY其它相关文章!
