The*_*uck 7 api rest spring controller
我希望能够定义一个父控制器类,它将具有"/ api"的映射,然后使用我的不同实现扩展该控制器.所以ApiController会有:
@Controller
@RequestMapping("/api")
Run Code Online (Sandbox Code Playgroud)
例如,我的用户控制器应扩展基本api控制器并在路径中添加"/ users",因此它将回答"/ api/users"请求.所以UserController将具有:
@Controller
@RequestMapping("/users")
Run Code Online (Sandbox Code Playgroud)
但由于它扩展了ApiController,它将有效地回答/ api/users.
当然,我可以在所有控制器之前添加"/ api",这样就可以在没有父类的情况下实现,但是如果可能的话,我更喜欢"正确的方式",这样我就可以用更清晰,更明显的方式定义我的api实现路径.
我尝试扩展ApiController基类,但这不起作用,UserController仍然回答"/ users"并忽略基类"/ api".
嗯 您可以尝试一下,这对我有用:
@RequestMapping("/abstract")
public abstract class AbstractController {
}
@Controller
public class ExtendedAbstractController extends AbstractController {
@RequestMapping("/another")
public String anotherTest() {
return "another";
}
}
Run Code Online (Sandbox Code Playgroud)
注意,您的基类必须没有@Controller注释,并且必须是abstract。
如果您尝试进行扩展而不是抽象类注释为控制器,并且这样做,@RequestMapping则会在RequestMappingHandlerMapping初始化步骤上出错。
| 归档时间: |
|
| 查看次数: |
4651 次 |
| 最近记录: |