Bean是线程安全的吗?
2024-01-10 09:28:59
Bean是线程安全的吗?
map是一个危险的存在状态的变量。
@Autowired
private UserMapper userMapper;
@Value("{APPID}") private String appid; @Value("APPID")privateStringappid;@Value("{APPSECRET}")
private String appsecret;
/**
用于封装处理之后的结果(失败或成功的结果)
/
Map<String, Object> map = new HashMap<>();
/*
发送Http请求,并且响应。
*/
@Autowired
private RestTemplate restTemplate;
/**
登录验证
@param code 临时登录码
@return ·
*/
@Override
public Map<String, Object> checkLogin(String code) {
String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + appid + "&secret=" + appsecret
+ "&js_code=" + code + "&grant_type=authorization_code";
log.info("请求网址=》{}" + url);
String errmsg = "";
String errcode = "";
String session_key = "";
String openid = "";
String token = "";
WeChatSessionModel weChatSessionModel;
//向微信服务器发送请求,传出一些返回值
ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.GET, null, String.class);
//校验发送是否成功
//如果成功则取出返回体的内容
String sessionData = responseEntity.getBody();
//取出微信返回的内容,并且使用gson工具类,将其封装进入wx模块
weChatSessionModel = new Gson().fromJson(sessionData, WeChatSessionModel.class);
openid = weChatSessionModel.getOpenid();
session_key = weChatSessionModel.getSession_key();
errcode = weChatSessionModel.getErrcode();
errmsg = weChatSessionModel.getErrmsg();
if (errcode != null || "".equals(openid) || openid == null) {
log.info("错误信息");
log.info("错误码信息==》{}" + errcode);
log.info("opid==》{}" + openid);
//如果登录失败,则提取错误内容返回数据信息
map.put("errmsg", errmsg);
log.info("service请求失败返回的错误数据" + map.toString());
return map;
}
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getOpenid, openid);
User user = userMapper.selectOne(queryWrapper);
//将session_key返回给前端
map.put("session_key", session_key);
if (user == null) {
//当用户信息不存在时注册新用户。
user = new User(UUID.randomUUID().toString(), openid, "微信用户", new Date(), "default.jpg");
userMapper.insert(user);
}
//将数据返回给前端
map.put("user", user);
map.put("token", JWTUtils.createToken(user.getUserId()));
return map;
}}
文章来源:https://blog.csdn.net/weixin_55990599/article/details/135494649
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!