如果我有一个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,因此装饰者。)
有没有办法做到这一点?或者也许有更好的方法来解决这个问题?
感谢您的帮助:)