版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xingfuzhijianxia/article/details/61922360
优化权限代码时候遇到一需求,把验证权限部分的代码提取出来,这就需要在static方法里调用注入进来的service。
这次使用了Spring的@PostConstruct机制。
代码示例:
@Component
public class CommUtilService{
private static Logger logger = Logger.getLogger(CommUtilService.class);
@Resource
private GroupService groupService;
@Resource
private UserDetailService userDetailService;
private static CommUtilService commUtilService;
@PostConstruct
public void init() {
commUtilService = this;
}
/**
* 验证权限。。
* @param userId
* @param code
* @return
*/
public static boolean hasPermission(UUID userId,String code){
boolean havePermission = false;
try {
List<Group> gps = commUtilService.groupService.getGroupsByUserId(userId);
Group group = commUtilService.groupService.getByCode(code);
if(null != group){
for(Group grp : gps){
if(grp.getId().equals(group.getId())){
havePermission = true;
break;
}
}
}
} catch (Exception e) {
logger.error("验证权限。。。,异常信息为:"+e.getMessage());
}
return havePermission;
}
}
下一步就是修改Spring配置bean,这个就不上代码了。
经测试,可通过。
以上!
各位 有更好的实现方式可以介绍下啊~