1
1
package cn .enilu .flash .service .system ;
2
2
3
3
import cn .enilu .flash .bean .entity .system .User ;
4
- import cn .enilu .flash .cache .impl . EhcacheDao ;
4
+ import cn .enilu .flash .cache .CacheDao ;
5
5
import cn .enilu .flash .dao .system .UserRepository ;
6
6
import cn .enilu .flash .security .JwtUtil ;
7
7
import cn .enilu .flash .service .BaseService ;
@@ -24,7 +24,7 @@ public class UserService extends BaseService<User,Long,UserRepository> {
24
24
@ Autowired
25
25
private UserRepository userRepository ;
26
26
@ Autowired
27
- private EhcacheDao ehcacheDao ;
27
+ private CacheDao cacheDao ;
28
28
@ Value ("${jwt.token.expire.time}" )
29
29
private Long tokenExpireTime ;
30
30
@@ -33,19 +33,19 @@ public User findByAccount(String account) {
33
33
//由于:@Cacheable标注的方法,如果其所在的类实现了某一个接口,那么该方法也必须出现在接口里面,否则cache无效。
34
34
//具体的原因是, Spring把实现类装载成为Bean的时候,会用代理包装一下,所以从Spring Bean的角度看,只有接口里面的方法是可见的,其它的都隐藏了,自然课看不到实现类里面的非接口方法,@Cacheable不起作用。
35
35
//所以这里手动控制缓存
36
- User user = ehcacheDao .hget (EhcacheDao .SESSION ,account ,User .class );
36
+ User user = cacheDao .hget (CacheDao .SESSION ,account ,User .class );
37
37
if (user !=null ){
38
38
return user ;
39
39
}
40
40
user = userRepository .findByAccount (account );
41
- ehcacheDao .hset (EhcacheDao .SESSION ,account ,user );
41
+ cacheDao .hset (CacheDao .SESSION ,account ,user );
42
42
return user ;
43
43
}
44
44
45
45
@ Override
46
46
public User update (User record ) {
47
47
User user = super .update (record );
48
- ehcacheDao .hset (EhcacheDao .SESSION ,user .getAccount (),user );
48
+ cacheDao .hset (CacheDao .SESSION ,user .getAccount (),user );
49
49
return user ;
50
50
}
51
51
@@ -60,7 +60,7 @@ public String loginForToken(User user){
60
60
//将token作为RefreshToken Key 存到缓存中,缓存时间为token有效期的两倍
61
61
String refreshTokenCacheKey = token ;
62
62
Date expireDate = new Date (System .currentTimeMillis ()+tokenExpireTime *120000 );
63
- ehcacheDao .hset (EhcacheDao .SESSION ,refreshTokenCacheKey ,String .valueOf (expireDate .getTime ()));
63
+ cacheDao .hset (CacheDao .SESSION ,refreshTokenCacheKey ,String .valueOf (expireDate .getTime ()));
64
64
logger .info ("token:{}" ,token );
65
65
return token ;
66
66
}
@@ -71,7 +71,7 @@ public String loginForToken(User user){
71
71
* @return
72
72
*/
73
73
public boolean refreshTokenIsValid (String token ){
74
- String refreshTokenTime = (String ) ehcacheDao .hget (EhcacheDao .SESSION ,token );
74
+ String refreshTokenTime = (String ) cacheDao .hget (CacheDao .SESSION ,token );
75
75
if (refreshTokenTime == null ){
76
76
return false ;
77
77
}
0 commit comments