by Anonymous » 05 Apr 2025, 12:11
Ich konfiguriere mehrere Threadpooltaskexecutor im Frühjahr und begegnet Unklarheiten bei der Bean -Autowering. Ich brauche Hilfe beim Verständnis des Injektionsverhaltens.
Code: Select all
@Configuration
@EnableAsync
public class ThreadPoolConfig implements AsyncConfigurer {
public static final String COMMON_EXECUTOR = "commonExecutor";
public static final String TEST_EXECUTOR = "testExecutor";
@Override
public Executor getAsyncExecutor() {
return commonExecutor();
}
@Primary
@Bean(COMMON_EXECUTOR)
public ThreadPoolTaskExecutor commonExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// Configuration details...
return executor;
}
@Bean(TEST_EXECUTOR)
public ThreadPoolTaskExecutor testExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// Different configuration...
return executor;
}
}
< /code>
Serviceklasse: < /p>
@Slf4j
@Service
@RequiredArgsConstructor
public class WareVarietyServiceImpl implements WareVarietyService {
private final ThreadPoolTaskExecutor testExecutor;
}
Es gibt zwei ThreadPooltaskexecutor Beans definiert: commonexecutor (markiert mit @primary ) und tstexecutor . Wenn Sie den TESTExecutor in der Serviceklasse automatisieren:
Erwartet: Injektion des testenexecutors bean.>
Ich konfiguriere mehrere Threadpooltaskexecutor im Frühjahr und begegnet Unklarheiten bei der Bean -Autowering. Ich brauche Hilfe beim Verständnis des Injektionsverhaltens.[code]@Configuration
@EnableAsync
public class ThreadPoolConfig implements AsyncConfigurer {
public static final String COMMON_EXECUTOR = "commonExecutor";
public static final String TEST_EXECUTOR = "testExecutor";
@Override
public Executor getAsyncExecutor() {
return commonExecutor();
}
@Primary
@Bean(COMMON_EXECUTOR)
public ThreadPoolTaskExecutor commonExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// Configuration details...
return executor;
}
@Bean(TEST_EXECUTOR)
public ThreadPoolTaskExecutor testExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// Different configuration...
return executor;
}
}
< /code>
Serviceklasse: < /p>
@Slf4j
@Service
@RequiredArgsConstructor
public class WareVarietyServiceImpl implements WareVarietyService {
private final ThreadPoolTaskExecutor testExecutor;
}
[/code]
Es gibt zwei ThreadPooltaskexecutor Beans definiert: commonexecutor (markiert mit @primary ) und tstexecutor . Wenn Sie den TESTExecutor in der Serviceklasse automatisieren:
Erwartet: Injektion des testenexecutors bean.>