2 回答
TA贡献1871条经验 获得超13个赞
我认为这里的问题是 flink 在分发给它的工作人员之前需要序列化自定义接收器函数。
通过标记 MessageRepo 传输,意味着当工作节点反序列化此函数时该字段将为空。通常,您会在 open 函数中初始化传输依赖项,该函数将在对象反序列化后调用。
TA贡献1744条经验 获得超4个赞
我不太清楚原因,但我认为在注入 bean 时,spring boot 会优先考虑您的服务类。当我尝试为我的实体类编写侦听器时,我遇到了类似的问题。我就是这样解决的。创建一个实现 ApplicationContextAware 接口并覆盖 setApplicationContext 方法的组件类。在您的类中有一个名为 getBean 的静态方法,它将在您的第一个请求时自动装配。示例代码 ---
@Component
public class SpringBeansUtil implements ApplicationContextAware {
private static ApplicationContext context;
@SuppressWarnings("static-access")
@Override
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
this.context = applicationContext;
}
public static <T> T getBean(Class<T> beanClass) {
return context.getBean(beanClass);
}
}
然后在你的代码中获取 bean ------->> ClassName referenceName = (ClassName)SpringBeansUtil.getBean(ClassName.class);
添加回答
举报