使用Spring的PostConstruct机制

版权声明:本文为博主原创文章,未经博主允许不得转载。 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,这个就不上代码了。


经测试,可通过。


以上!

各位 有更好的实现方式可以介绍下啊~

猜你喜欢

转载自blog.csdn.net/xingfuzhijianxia/article/details/61922360