我对所有Spring Framework都不熟悉,因此我尝试在下面的代码中将* .xml转换为Java Config。
我不确定如何创建执行程序并设置rejection-policy="ABORT"
。
XAML文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:cache="http://www.springframework.org/schema/cache"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd
http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd">
<context:annotation-config />
<task:annotation-driven executor="processorExecutor" />
<task:executor
id="listenerExecutor"
pool-size="3-15"
queue-capacity="5000"
rejection-policy="ABORT" />
<task:executor
id="processorExecutor"
pool-size="3-15"
queue-capacity="5001"
rejection-policy="ABORT" />
<bean id='applicationEventMulticaster'
class='org.springframework.context.event.SimpleApplicationEventMulticaster'>
<property name='taskExecutor' ref='listenerExecutor' />
</bean>
<bean id="config"class="com.ebay.catalogs.pm.common.config.ApplicationConfigPropertiesFactorBean" />
</beans>
Java配置文件:
@Configuration
public class ApplicationConfig {
@Bean(name = "listenerExecutor")
public Executor threadPoolTaskExecutor() {
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
taskExecutor.setCorePoolSize(3);
taskExecutor.setMaxPoolSize(15);
taskExecutor.setQueueCapacity(5000);
taskExecutor.setr
return taskExecutor;
}
@Bean(name = "processorExecutor")
public Executor threadPoolTaskExecutor() {
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
taskExecutor.setCorePoolSize(3);
taskExecutor.setMaxPoolSize(15);
taskExecutor.setQueueCapacity(5001);
taskExecutor.setr
return taskExecutor;
}
}
最佳答案
taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy());