我想通過調用一個類級別的註解與@RequestMapping
(簽到)的方法(從方法:認證),如下所示:調用由一流水平與@RequestMapping註解的方法,包括一個自動裝配Autowired類
@RequestMapping(value = /authenticate, method = RequestMethod.POST)
public @ResponseBody Response authentication(HttpServletRequest request)
{
UserController user = new UserController();
return user.signIn(request, null);
}
和我的控制器看起來像:
@Component
public class UserManager {
public User auth(User user, String lang) {
....
return user;
}
}
:
@Autowired
private UserManager userManager;
@RequestMapping(value = /signin, method = RequestMethod.POST)
public @ResponseBody Response signIn(HttpServletRequest request) {
JsonObject json = Misc.parseJson(request);
String lang = Misc.getLang(request);
user.setEmail(Misc.getEmail(json));
user.setPassword(Misc.getEncryptedPassword(json));
return ResponseUtils.success(userManager.auth(user, lang));
}
用戶管理與@Component註解
問題是當我調用方法「signIn」,並通過「/ authenticate」映射新建一個UserController實例時,UserManager變爲NULL。所以現在我假設自動裝配在這樣完成時不起作用。
有沒有其他方法可以調用signIn方法?我不希望將一個已經存在的代碼複製到另一個類中,只是爲了得到這個工作...
你爲什麼要在另一個控制器類中實例化一個控制器類?顯示你的UserManager代碼,它是否是彈簧管理的?對於身份驗證和授權,我會建議使用Spring-Security,而不是創建自己的。 –
我們需要驗證一些操作,例如刪除或更新我們網站中的某些數據,即使用戶已經登錄。所以我認爲,不是創建另一個身份驗證檢查,我可以使用用於登錄的方法用戶進入網站,因爲它基本上是一樣的。我想我不能使用相同的映射,或者有沒有辦法爲單個方法創建兩個映射值? – Juni
如果它是一個服務層方法,你可以在控制器中用不同的映射值或URL創建任意數量的方法。你的驗證碼是未知的,你試圖達到的似乎並不正常,請先閱讀spring文檔。 –