解决spring 注入ThreadPoolExecutor 构造歧义
2015-01-14 10:06
134 查看
出处http://stackoverflow.com/questions/6395388/error-creating-bean-cant-inject-a-new-linkedblockingqueue-as-a-constructor-to
这里的解决方法就是不直接注入 ThreadPoolExecutor,而是通过factoryBean注入
在程序中可以注入给ThreadPoolExecutor
@Autowired
@Qualifier(value = "executor")
ThreadPoolExecutor executor;
这里的解决方法就是不直接注入 ThreadPoolExecutor,而是通过factoryBean注入
public class ThreadPoolExecutorFactory implements FactoryBean { private final ReentrantLock lock = new ReentrantLock(); private ThreadPoolExecutor executor; private int corePoolSize; private int maximumPoolSize; private long keepAliveTime; private TimeUnit unit; public Object getObject() { lock.lock(); if (executor == null) executor = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, new LinkedBlockingQueue<Runnable>()); lock.unlock(); return executor; } public Class getObjectType() { return ThreadPoolExecutor.class; } public boolean isSingleton() { return true; } }
<bean name="executor" class="ThreadPoolExecutorFactory"> <constructor-arg value="1" /> <constructor-arg value="20" /> <constructor-arg value="60" /> <constructor-arg> <bean class="java.util.concurrent.TimeUnit" factory-method="valueOf"> <constructor-arg value="SECONDS" /> </bean> </constructor-arg> </bean>
在程序中可以注入给ThreadPoolExecutor
@Autowired
@Qualifier(value = "executor")
ThreadPoolExecutor executor;
相关文章推荐
- Spring构造方法注入类型歧义
- WebSphere6.x中不能使用Spring的session scope注入对象的解决办
- spring annotation 方式注入父类的解决方法
- Spring设置注入和构造注入
- 注入参数spring入门(7)---装配Bean中构造参数的注入
- spring入门(7)---装配Bean中构造参数的注入
- spring 构造注入方式,以及Ajax初接触
- Spring 构造注入!
- 在cxf web service类中同时注入spring bean出错时的解决办法
- Xfire + Spring 远程调用webservice时提示注入的对象是空值,解决办法
- Spring Bean 注入 1 - 构造方法注入,属性注入,自动装配
- MyEclipse 整合 struts2 和 spring 时,spring无法注入的解决办法
- 解决Spring定时计划任务重复执行两次(实例被构造两次)问题的方法
- Spring注解无法注入Session监听器解决办法
- Spring IoC – 属性注入 – set方法和构造方法
- Spring整理6 -- 构造方法注入
- spring依赖注入(二)之 构造注入
- SSH框架构造之三---------------spring 注入
- Spring通过构造方法注入的四种方式
- Spring入门_03_构造注入