java - : SpringBoot方法中Principal是如何注入(inject)的

标签 java spring spring-security spring-boot

我在 spring.io 教程中阅读了有关社交登录的内容,但我无法理解如何将 Principal 注入(inject)公共(public)方法 user

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

这是link

最佳答案

因为如果你正在编写这样的方法

public Principal user(Principal principal)

并且 Spring 正在调用您的方法,Spring BeanFactory 将尝试查找名为 principal 的 bean 或 Principal 类型的 bean 来注入(inject)它进入你的方法。所以你的代码会自动变成这样

public Principal user(@Autowired Principal principal)

假设您要从代码中的某个位置调用 user() 方法,在这种情况下,您需要将主体作为方法参数传递给您的调用,您会这样做

@Autowired Principal principal;
user(principal);

Spring 所做的同样的事情是将主体注入(inject)到你的 user() 方法中

关于java - : SpringBoot方法中Principal是如何注入(inject)的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40701038/

相关文章:

java - 如何在 spring 事务之外执行 JPA 代码

spring - 使用 Spring 事务管理点燃事务缓存

java - 不使用 Spring Security 身份验证?

java - 不支持 Steammobile 协议(protocol)

java - 获取联系人的照片和姓名

java - AbstractApplicationContext 与 ApplicationContext

java - Thymeleaf 不解释 sec 标签

java - Bootstrap 的导航栏 Spring 中的错误登录表单

java - 如何使用自然顺序和比较器编写函数

java - 使用 Retrofit with Field 传递参数