我想将Entity转换为另一个对象以进行响应(例如:ActionEntity
到ActionResponse
)。
在Spring中,我们可以像这样创建一个bean:
@Component
public class EntityToResponseConverter implements Converter<ActionEntity,
ActionResponse>{
@Override
public RequestResponse convert(ActionEntity entity) {
ActionResponse response = new ActionResponse();
response.setId(entity.getId());
response.setOrigId(entity.getOrigId());
return response;
}
}
然后我自动连接一个ConversionService来使用。
我可以这样创建新bean的另一种方法:
@Component
public class EntityToResponseConverter {
public ActionResponse convert(ActionEntity entity) {
ActionResponse response = new ActionResponse();
response.setId(entity.getId());
response.setOrigId(entity.getOrigId());
return response;
}
}
然后我自动连接该bean以使用。
什么时候应该实现Converter而不是创建常规bean?
最佳答案
Converter
是可用于自动转换的界面:
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new YourCustomConverter());
}
}
注册了转换器后,如果数据类型匹配,Spring将自动为您的控制器转换请求数据。