如何在方法中注入Principal:SpringBoot

时间:2016-11-20 05:33:03

标签: java spring spring-security spring-boot

我正在阅读spring.io教程中的社交登录,我无法理解如何在公共方法中注入Principal user

@RequestMapping("/user")
public Principal user(Principal principal) {
    return principal;
}

以下是link

1 个答案:

答案 0 :(得分:2)

因为如果您正在编写类似

的方法
public Principal user(Principal principal)

Spring调用你的方法,Spring BeanFactory将尝试找到一个名为principal的bean或一个类型为Principal的bean,将它注入到你的方法中。所以你的代码会自动变成

public Principal user(@Autowired Principal principal)

假设您要从代码中的某个位置调用user()方法,那么您需要将principal作为方法参数传递给您的调用,您将这样做

@Autowired Principal principal;
user(principal);

Spring正在这样做是将principal注入你的user()方法