die*_*rre 16 java jax-rs jersey java-ee-6
我不知道标题是否令人困惑,但让我说我有这个界面:
@Produces(MediaType.APPLICATION_JSON)
@Path("/user")
public interface UserService {
@GET
@Path("/{userId}")
public Response getUser(@PathParam("userId") Long userId);
}
Run Code Online (Sandbox Code Playgroud)
为什么当我尝试实现一个版本Eclipse重写覆盖方法的注释而不是类?
class UserServiceImpl implements UserService {
@Override
@GET
@Path("/{userId}")
public Response getUser(@PathParam("userId") Long userId) {
// TODO Auto-generated method stub
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
我试图为restful Web服务创建一个标准定义,然后进行不同的实现.使用标准的jax-rs是否可以这样?我是否有机会使用错误的注释?
Car*_*ini 24
只有在实现类上不使用任何 jax-rs注释时,才可以使用注释继承:它在JSR-339的第3.6节中说明.
您重新定义@Path和重新定义@Produces方法,但不重新定义 类.
因此,Path代码中的注释应该在具体类上:
public interface UserService {
@GET
@Path("/{userId}")
@Produces(MediaType.APPLICATION_JSON)
public Response getUser(@PathParam("userId") Long userId);
}
@Path("/user")
class UserServiceImpl implements UserService {
@Override
@GET
@Path("/{userId}")
@Produces(MediaType.APPLICATION_JSON)
public Response getUser(@PathParam("userId") Long userId) {
// TODO Auto-generated method stub
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
顺便说一下,规范鼓励我们复制具体类的注释:
为了与其他Java EE规范保持一致,建议始终重复注释,而不是依赖注释继承.
| 归档时间: |
|
| 查看次数: |
11745 次 |
| 最近记录: |