以下代码是与spring
框架一起使用的常见构造。它提供配置类的目的是提供所需的实现类,这里是AsyncUncaughtExceptionHandler
。
是否可以/建议使用新的java 1.8 lambda表达式重构此代码?如果是,怎么样?
@Component
public class AsyncConfigurer extends AsyncConfigurerSupport {
@Autowired
private CustomService service;
@Autowired
private Logger logger;
@Override
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
return new AsyncUncaughtExceptionHandler() {
@Override
public void handleUncaughtException(Throwable ex, Method method, Object... params) {
service.call();
logger.fatal(ex);
}
};
}
}
答案 0 :(得分:4)
您是否愿意这样做取决于您;它主要是风格问题。
如果你这样做,它将如下所示:
@Override
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
return (ex, method, params) -> {
service.call();
logger.fatal(ex);
};
}