1. 程式人生 > >許可權管理系統 ThreadLocal的使用:在同一執行緒中獲取使用者資訊

許可權管理系統 ThreadLocal的使用:在同一執行緒中獲取使用者資訊

ThreadLocal的使用:在同一執行緒中獲取使用者資訊

/*****************************************************************************************/

public class ThreadUtils implements Runnable {

private static class ThreadUtilsHolder {

private static final ThreadUtils INSTANCE = new ThreadUtils();

}

private ThreadUtils() {

}

public static final ThreadUtils getInstance() {

return ThreadUtilsHolder.INSTANCE;

}

private User user;

private final ThreadLocal<User> userId = new ThreadLocal<User>() {

@Override

protected User initialValue() {

return user;

}

};

public void setUserId(User user) {

this.user = user;

}

public User getUserId() {

return userId.get();

}

@Override

public void run() {

}

}

/*********************************************************************************************************/

登入時將使用者資訊儲存在ThreadLocal中,並啟動執行緒

ThreadUtils Tutils =  ThreadUtils.getInstance();

Thread thread = new Thread(Tutils);

Tutils.setUserId(loginuser);

thread.start();

在切面中獲取執行緒中的使用者資訊

ThreadUtils Tutils = ThreadUtils.getInstance();

public User getUser() {

User user = Tutils.getUserId();

return user;

}