gpt4 book ai didi

java - lambda 表达式阻止类进行 spring 组件扫描

转载 作者:行者123 更新时间:2023-11-30 06:48:28 27 4
gpt4 key购买 nike

我们的应用程序有带有 @Component 注释的类测试。这里使用的是 Lambda 表达式。

    @Component
public class Test{

private ScheduledExecutorService schedulerExecutorService;
private long timeoutForRollBack=180000;
private long timeoutFailoverDelay=180000;
public static Test getInstance() {
if (INSTANCE == null) {
/*Actual instance will be created via reflection. using new for understanding */
INSTANCE = new Test();
}
return INSTANCE;
}
public void handleFailOver(){
schedulerExecutorService.scheduleWithFixedDelay(
() -> {
schedulerExecutorService.shutdown();
},
timeoutForRollBack, timeoutFailoverDelay, TimeUnit.MILLISECONDS);
}

}

但是这个 Test 类 bean 没有被创建。但是当这个方法被注释时,就会创建 Test 类 bean。

使用 Java 8 oracle 和 Eclipse Neon2。

建议是否需要进行任何更改来解决此问题。

Edit 1:


发现报告了类似的问题: https://java.net/jira/browse/JAVASERVERFACES-3732

Edit 2:


Similar issue faced https://github.com/orfjackal/retrolambda/issues/121

附注:

如果

() -> {
schedulerExecutorService.shutdown();
}

被替换为私有(private)内部类,这工作正常。

private class TerminalScheduledExecutor implements Runnable{
@Override
public void run() {
schedulerExecutorService.shutdown();
}
}.

但是期待在不替换 lambda 函数的情况下找到解决方案。

最佳答案

您是否尝试过更改 spring 框架的详细 bean 创建日志的日志级别?

这里的每个建议: Question with no answers, but issue solved in the comments (or extended in chat)

关于java - lambda 表达式阻止类进行 spring 组件扫描,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43270883/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com