可以在@RequestBody

时间:2015-10-05 16:13:28

标签: java spring dependency-injection

如果我有一个Spring webapp,其端点如此:

@Autowired
UnpublishedStuffFactory unpublishedStuffFactory;

@RequestMapping(value = "/{id}", method = RequestMethod.PUT)
@ResponseBody
public OutputStuff update(@RequestBody Stuff stuff, @PathVariable String id) {

    UnpublishedStuff uStuff = unpublishedStuffFactory.get(stuff);
    //handle the request
}

UnpublishedStuffFactory.java:

@Component
public class UnpublishedStuffFactory {

    @Autowired
    //some autowired beans

    public UnpublishedStuff get(Stuff stuff) {
        return new UnpublishedStuff(stuff, /*some autowired beans*/);
    }
}

所以Stuff是我的域对象(简单的POJO)。 OutputStuff是我生成的内容(某些元数据等),如果update正常,则返回 一切正常,但我希望spring在请求进入时自动执行此工厂方法,并将UnpublishedStuff注入update方法,而不是注入Stuff。 基本上UnpublishedStuff是围绕Stuff的装饰器,它通过其他自动装配的bean(来自工厂)添加功能,以验证,发布等到Stuff(我不希望Stuff中的此功能1}},我希望它保持一个基本的POJO,因此装饰者。) 有没有办法做到这一点?或者也许有更好的方法来解决这个问题? 感谢您的帮助:)

0 个答案:

没有答案