我在 findOne
语句中有问题;我想通过退出用户名来获取用户名在我的应用程序中登录函数:
春季代码
@RestController
@RequestMapping("/enduser")
public class enduserRestCountroller {
@Autowired
enduserRepository enduserRepository;
MongoOperations mongoOperations;
//create
@RequestMapping(method = RequestMethod.POST,consumes = MediaType.APPLICATION_JSON_VALUE)
public void create(@RequestBody enduser enduser){
enduserRepository.save(enduser);
}
@RequestMapping(value = "/list", method = RequestMethod.GET)
public List<enduser> readall( ){
return enduserRepository.findAll();
}
@RequestMapping(value = "/{id}" ,method=RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
@CrossOrigin
public @ResponseBody enduser read(@PathVariable String id){
return enduserRepository.findOne(id);
}
@RequestMapping(method = RequestMethod.PUT,consumes = MediaType.APPLICATION_JSON_VALUE)
public void update(@RequestBody enduser enduser){
enduserRepository.save(enduser);
}
@RequestMapping(value = "/deleteuser/{id}",method=RequestMethod.GET)
public String delete(@PathVariable String id){
enduserRepository.delete(id);
return "1";
}
@RequestMapping(value = "/signin/{username}",method=RequestMethod.GET)
public enduser login(@PathVariable String username){
System.out.println(username);
username="maged";
Query query=new Query();
enduser user=mongoOperations.
findOne(
query.addCriteria(
Criteria.where("username")
.is(username)),enduser.class);
System.out.println("enduser is "+user.getUsername());
return user;
}
}
null指针异常
未定义的2017-10-03 13:24:11.353错误5668 --- [IO-8080-EXEC-10]o.a.c.c.c.c。[。[。[/]。在路径上[][请求处理失败;嵌套异常是java.lang.nullpoInterException]带有根本原因
java.lang.nullpointerexception:null atcom.adams.demo.restcontroller.enduserrestcountroller.login(enduserrestcountroller.java:84)〜[class/:na]
看起来好像您缺少@Autowired的杂货注释:
@Autowired
enduserRepository enduserRepository;
@Autowired
MongoOperations mongoOperations;
您还应该尝试将逻辑与您的控制器和用户Java命名惯例分开。
您可以在这里找到一个工作示例:
mongo enduser示例
下载分支并在您的命令行中执行gradle bootRun
。然后,您可以在浏览器中导航到http://localhost:8080/enduser/adduser/test以创建演示用户
和http://localhost:8080/enduser/signin/test以测试您的方法。
该答案的项目相关类是:
- enduser
- EnduserService
- enduserController