ConversionService Bean与用于转换对象的常规转换器Bean

时间:2018-07-09 10:41:38

标签: java spring-boot

我想将Entity转换为另一个对象以进行响应(例如:ActionEntityActionResponse)。

在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?

1 个答案:

答案 0 :(得分:2)

Converter是可用于自动转换的界面:

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addFormatters(FormatterRegistry registry) {
        registry.addConverter(new YourCustomConverter());
    }
}

注册了转换器后,如果数据类型匹配,Spring将自动为控制器转换请求数据。