Spring Boot的转换器是从数据源获取对象的好方法吗?

时间:2018-01-09 19:13:25

标签: java spring spring-mvc model-view-controller

我正在玩Spring Boot,我偶然发现了转换器界面。据我所知,使用转换器的主要目的是转换数据类型。

但后来我想知道使用Spring的转换器从数据源中获取一些实例是一个好主意,还是因为它被认为是一个糟糕/良好的实践。

通过这种方式,实体可以被注入"进入控制器的方法并减少代码重复, 如下:

@Entity
class SomeEntity {
    @Id
    @GeneratedValue
    @GenericGenerator(name = "UUID", strategy = "...")
    private UUID id;
    // more things ...
}

我们有一个转换器:

@Component
class SomeConverter extends Converter<String, SomeEntity> {
    @Autowired
    SomeEntityRepository repository;  // CrudRepository

    @Override
    public SomeEntity convert(String source) {
        // get the entity from the Data Source...
        UUID id;
        try {
            id = UUID.fromString(source);
        } catch (IllegalArgumentException e) {
            // handle exception
            throw e;
        }
        SomeEntity someEntity = this.repository.findOne(id);
        return someEntity;
    }
}

然后我有一个控制器:

@RestController
class SomeController {
    @GetMapping(path = "/some/{someId}")
    public ResponseEntity<SomeEntity> getSome(@PathVariable("someId") SomeEntity some) {
        // maybe do something with the Entity...
        return new ResponseEntity<>(some, HttpStatus.OK);
    }
}

任何想法建议都将深表感谢!在此先感谢:)

(上面的代码仅用于更清晰地显示转换的想法)

0 个答案:

没有答案