Fuguo-web

来自ling
跳转至: 导航搜索

功能

  • 包含适配tomcat为主的服务容器的程序.
  • wl-web-core 支持分布式集群访问,并带有权限控制的web项目核心
  • wl-web-rest 以dubbo server服务为基础的,主要为app客户端提供数据的restful风格服务基础
不建议使用dubbo 的rest功能
在这一层,用nginx做代理,做负载均衡
通过一定的技术细节配合业务减少对dubbo server的访问次数来提高对app客户端的响应速度
不建议使用spring mvc 来提供restful服务
  • 相关重要技术
wl-web-core现在已经支持集群内用户信息共享,跨域(相同跟域,比如xxx1.ling2.cn,xxx2.ling2.cn)信息共享
wl-web-rest主要使用spring mvc实现,支持权限配置,支持异常直接抛出,配置CORSFilter后支持使用angularJs等非原生语言开发的移动端数据访问
通过注解进行数据访问权限控制
参考代码如下
	@RequestMapping(value = "/saveNewUser", method = RequestMethod.POST)
	@ResponseBody
	@RoleAnnotation(roles=RoleDef.ECOMMERCE_ADMIN)
	public DefaultUserVo saveNewUser(DefaultUserVo user) {
		AssertHelper.notEmpty_assert(user.getMobile(),"手机号不能为空");
		AssertHelper.notEmpty_assert(user.getUsername(),"用户名不能为空");
		AssertHelper.notEmpty_assert(user.getMobile(),"手机号不能为空");
		AssertHelper.notEmpty_assert(user.getUsername(),"用户名不能为空");
		//检查用户名
		DefaultUser baseUser=(DefaultUser) userService.getByUserName(user.getUsername());
		if(baseUser!=null){
			throw new BusinessException("用户名已经存在");
		}		
		//检查手机号
		DefaultUser mobileUser=(DefaultUser) userService.loadUserByMobile(user.getMobile());
		if(mobileUser!=null){
			throw new BusinessException("手机号已经被使用");
		}	
		//检查邮箱
		DefaultUser emailUser=(DefaultUser) userService.loadUserByEmail(user.getEmail());
		if(emailUser!=null){			
			throw new BusinessException("邮箱已经被使用");
		}
		baseUser=new DefaultUser();
		//更新相应信息
		baseUser.setUsername(user.getUsername());
		baseUser.setMobile(user.getMobile());
		baseUser.setNickname(user.getNickname());
		baseUser.setRealName(user.getRealName());
		baseUser.setRemark(user.getRemark());
		baseUser.setEmail(user.getEmail());
		baseUser.setCname(user.getRealName());
		userService.registerCommonUser(baseUser);
		
		List<DefaultRole> roles=roleService.loadUserRoles(baseUser.getUsername());
		roleService.removeAll(roles);
		for(DefaultRoleVo roleVo:user.getRoles()){
			RoleMember roleMember=new RoleMember();
			roleMember.setRoleId(roleVo.getId());
			roleMember.setUsername(user.getUsername());
			roleService.save(roleMember);
		}
		return user;
	}

依赖

配置文件说明

关键类说明