Spring ResourceSupport - 根据成员的类型返回子类资源对象

时间:2015-01-22 16:02:08

标签: java spring rest hateoas spring-hateoas

我有一个名为MyResource

的资源
public class MyResource extends ResourceSupport {
    protected final Stuff stuff;

    public EventResource(Stuff stuff) {
        this.stuff= stuff;
    }
    public String getUserId() { return stuff.getUserId(); }
}

这里的问题是Stuff已在另一个名为TestStuff的类中扩展,该类还有一个成员testId。所以我创建了另一个名为TestResource的资源,它扩展了MyResource并使用getter方法返回testId

public class TestResource extends MyResource{
    protected final TestStuff testStuff;

    public EventResource(Stuff stuff) {
        super(stuff)
        this.stuff= (TestStuff)stuff;
    }

    public String getTestId() { return stuff.getTestId(); }

}

还有一个类似TestResource的类,名为SampleResource,其SampleStuff对象派生自Stuff,并且还有sampleIdMyResource

这里的问题是我希望Spring根据TestResource类中的对象类型自动使用适当的Resource类型。

所以在这里,如果我的stuff对象属于TestStuff类型,那么它将返回SampleResource,如果我的stuff对象属于SampleStuff类型,则返回{{1}}。 我相信应该有一种自动的方法来做到这一点,但找不到它。如果有人能帮助我,我会很感激。

0 个答案:

没有答案