提交 390065f2 编写于 作者: 爱吃血肠's avatar 爱吃血肠

新增LoginContext

上级 9389d53d
package com.yingjun.ssm.aop;
import com.yingjun.ssm.dto.BaseResult;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
......@@ -8,12 +7,12 @@ import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.validation.BindingResult;
/**
* @author yingjun
* @author liyunfeng
*
* 采用AOP的方式处理参数问题
* 采用AOP的方式检查用户是否登录
*/
@Component
@Aspect
......@@ -26,19 +25,8 @@ public class BindingResultAop {
@Around("aopMethod()")
public Object around(ProceedingJoinPoint joinPoint) throws Throwable{
LOG.info("before method invoking!");
BindingResult bindingResult = null;
for(Object arg:joinPoint.getArgs()){
if(arg instanceof BindingResult){
bindingResult = (BindingResult) arg;
}
}
if(bindingResult != null){
if(bindingResult.hasErrors()){
String errorInfo="["+bindingResult.getFieldError().getField()+"]"+bindingResult.getFieldError().getDefaultMessage();
return new BaseResult<Object>(false, errorInfo);
}
}
LOG.info("采用AOP的方式检查用户是否登录");
return joinPoint.proceed();
}
}
package com.yingjun.ssm.util;
/**
* @author liyunfeng
* 保存用户的登录信息
*/
public class LoginContext {
private ThreadLocal<LoginContext> threadLocal = new ThreadLocal<>();
/**
* 主键id
*/
private Long id;
/**
* 密码
*/
private String password;
/**
* 姓名
*/
private String name;
/**
* 电子邮箱
*/
private String email;
/**
* 移除当前线程中的变量值
*/
public void remove(){
threadLocal.remove();
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
......@@ -6,12 +6,15 @@ import com.yingjun.ssm.entity.User;
import com.yingjun.ssm.enums.ResultEnum;
import com.yingjun.ssm.exception.BizException;
import com.yingjun.ssm.service.UserService;
import com.yingjun.ssm.util.LoginContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpSession;
/**
* 用户
......@@ -42,6 +45,7 @@ public class UserController {
public BaseResult<Object> userLogin(User user) {
try {
userService.checkUserLogin(user);
} catch (BizException e) {
return new BaseResult<>(false, e.getMessage());
} catch (Exception e) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册