我想通过调用一个类级别的注解与@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文档。 –