MessageSource Spring:NotSerializableException

时间:2018-09-07 08:47:54

标签: java spring spring-mvc

我正在使用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

有人可以指导我如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

根据您在此处提供的信息,问题出在您的ReloadableResourceBundleMessageSource类上,因为它没有实现Serializable接口。

这由您的class MyClass implements Serializable导致Serializable类中的变量应该为Serializabletransient

因此,根据您的类,您的ReloadableResourceBundleMessageSource类应该实现Serializable接口,或者在您的MyClass中,变量应如下所示

@Autowired(required=true)
private transient MessageSource messages;

希望有帮助