STS 2.8.1とSpring 3.1.1.RELEASEを使用しています。Spring MVC抽象コントローラ::抽象コントローラインタフェースを実装する際に正確なメソッドシグニチャを取得する方法
私はSTSでコントローラを拡張する場合、私は@RequestMappingが細かい継承されていることを理解し、私
@Override
public OAuthEntity setOAuthEntity(OAuthEntity oAuthEntity) {
// TODO Auto-generated method stub
return null;
}
@Override
public OAuthEntity getOAuthEntity(Long id) {
// TODO Auto-generated method stub
return null;
}
以下のように、それは私のメソッドのシグネチャを与える
以下public abstract class SuperController {
@RequestMapping(value = "/Entity", method = RequestMethod.POST, headers = "Accept=application/xml,application/json")
public abstract @ResponseBody OAuthEntity setOAuthEntity(@RequestBody OAuthEntity oAuthEntity);
@RequestMapping(value = "/Entity/{id}", method = RequestMethod.GET, headers = "Accept=application/xml,application/json")
public abstract @ResponseBody OAuthEntity getOAuthEntity(@PathVariable("id") Long id);
}
のような抽象コントローラを持っていますコードをテストしました(それは動作します!!)。 私が望むのは、スーパークラスを拡張すると、抽象クラスのように@ResponseBody、@PathVariable( "id")と@RequestBodyを取得する必要があるということです。もちろん
それは私を殺すが、イライラされていない
@Override
public @ResponseBody OAuthEntity setOAuthEntity(@RequestBody OAuthEntity oAuthEntity) {
@Override
public @ResponseBody OAuthEntity getOAuthEntity(@PathVariable("id") Long id) {
以下のようなサブクラスはメソッドのシグネチャを持つように私は(それは私がやっているものだが、よりエレガントな方法をしたいと思います)を手動で編集できます手動で書き込む必要があります。 何か助けていただければ幸いです。
複数のコントローラ間で同じメソッドシグネチャを使用したいので、親子関係にしたいと思っていました。このようにして、私はさまざまなコンテキストに対して異なる実装を行うことができます。スーパーコントローラはOauthControllerで、子供は/ google、/ facebookなどです。 – user1259352