异常说明:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.baixun.manage.schedule.manage.VersionThread' available
参考: https://blog.youkuaiyun.com/heroqiang/article/details/79019415
参考: https://blog.youkuaiyun.com/john1337/article/details/88924696
参考: https://www.cnblogs.com/sharpest/p/6064595.html
参考: https://blog.youkuaiyun.com/wang_shuyu/article/details/83657366
最后一个参考, spring 注入多线程实现类
报错环境:
类对象时一个继承 Thread 的类,用 @Component 注解了,不存在注解扫描路径的问题,在 用 BeanFactory 加载该类时报错,一直无法理解,后来发现 Spring 默认注册都是单例模式,无法直接加载 多线程类,必须用@Scope("prototype") 指定范围,
后来再用benaFactory 生成类对象时,又报异常
org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named 'versionThread' is expected to be of type 'com.baixun.manage.schedule.manage.VersionThread' but was actually of type 'com.sun.proxy.$Proxy190'
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:378) ~[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1086) ~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
生成的时代理类型,可能时@Scope("prototype") 指定的原型,所以生成的类,会自动变成代理类,
在类上加 @
@EnableAspectJAutoProxy(proxyTargetClass=true) // 设置允许使用 代理类型