我想将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?

最佳答案

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

@Configuration
public class WebConfig implements WebMvcConfigurer {

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


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

10-08 02:50