应用场景
如果需要获取当前请求的用户信息时使用
请注意,此方法是通过ThreadLocal中的Request对象获取用户信息,所以如果使用了异步调用。此方法会失效。请在Controller对象中注入对象并传递给Service使用。尽量避免在Service实现类中直接使用。
方式一:使用UserContext
第一步 引用pom
hvisions-common-springboot-starter版本3.5.5+
<dependency>
<groupId>com.hvisions</groupId>
<artifactId>hvisions-common-springboot-starter</artifactId>
<version>3.5.6</version>
</dependency>
第二步 使用
注入bean
@Autowired
UserContext userContext;
在代码中使用
UserInfoDTO userInfo = userContext.getSecureUser();
UserInfoDTO userInfo = userContext.getCurrentUser();
注:
UserContext.getSecureUser();会校验当前用户信息是否为空,为空则会抛出异常
方式二(旧版本):使用@UserInfo
检查server module的依赖
<!-- 2.5.1 -->
<dependency>
<groupId>com.hvisions</groupId>
<artifactId>hvisions-common-springboot-starter</artifactId>
<version>3.5.5</version>
</dependency>
检查common module的依赖
<dependency>
<groupId>com.hvisions</groupId>
<artifactId>common-interface</artifactId>
<version>3.5.5</version>
</dependency>
控制器上使用注解直接获取当前请求人的信息,当请求发生的时候会自动填充userInfo的值
@ApiOperation(value = "test")
@GetMapping(value = "/test")
public void test(@UserInfo @ApiIgnore UserInfoDTO userInfo) {
log.info(userInfo.toString());
}