<分区>
我创建了界面:
@RequestMapping("/data")
public interface PersonControllerInterface {
@RequestMapping(value="/person/{id}", method=RequestMethod.GET)
public Person getPersonDetail(@PathVariable final Integer id);
}
和实现该接口(interface)的类:
@RestController
public class PersonController implements PersonControllerInterface {
@Override
public Person getPersonDetail(final Integer id) {
final Person p = new Person(id);
return p;
}
}
但是在我调用 GET localhost:8080/data/person/4
之后。我得到了:
DEBUG o.s.web.servlet.DispatcherServlet - Could not complete request
java.lang.NullPointerException: null
at com.concretepage.Person.<init>(Person.java:12)
at com.concretepage.PersonController.getPersonDetail(PersonController.java:16)
Person
类:
public Person(final Integer id) { this.id = id; }
在 jax-rs 中我可以做类似的事情,但在 Spring 中它不能获取路径中的 id。我的问题有什么解决方案吗?我真的不想在我的实现类中放置 @PathVariable
注释。
编辑:它不是修复 NPE 的副本。将注释从接口(interface)类传播到实现中是一个问题。