我正在使用MessageSource在Spring中实现国际化。
我有这样的东西。
在我的Config类中:
@Bean
public ReloadableResourceBundleMessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:messages");
messageSource.setDefaultEncoding("UTF-8");
messageSource.setUseCodeAsDefaultMessage(true);
return messageSource;
}
我的春豆
@Component
class MyClass implements Serializable {
@Autowired(required = true)
private MessageSource messages;
}
运行项目时,出现此异常:
Caused by: java.io.NotSerializableException: org.springframework.context.support.ReloadableResourceBundleMessageSource
有人可以指导我如何解决这个问题。
答案 0 :(得分:0)
根据您在此处提供的信息,问题出在您的ReloadableResourceBundleMessageSource
类上,因为它没有实现Serializable接口。
这由您的class MyClass implements Serializable
导致Serializable类中的变量应该为Serializable
或transient
。
因此,根据您的类,您的ReloadableResourceBundleMessageSource
类应该实现Serializable
接口,或者在您的MyClass中,变量应如下所示
@Autowired(required=true)
private transient MessageSource messages;
希望有帮助