ID:235222

cwj

高级Java 工程师

  • 公司信息:
  • 起点人力资源股份有限公司
  • 工作经验:
  • 6年
  • 兼职日薪:
  • 500元/8小时
  • 兼职时间:
  • 下班后
  • 周六
  • 周日
  • 可工作日远程
  • 所在区域:
  • 武汉
  • 全区

技术能力

1.熟练掌握JavaSE基础知识,熟悉多线程,熟悉常用的设计模式等
2.熟练掌握IDE/Git,Maven等开发及版本控制工具
4.熟悉使用MySQL,PostgreSQL,SqlServer等关系型数据库,熟练使用Redis等非关系型数据库
5.熟练掌握SpringMVC,Spring,Mybatis等开源框架。
6.熟练掌握集合以及知悉其实现原理
7.熟悉SpringBoot,SpringCloud,Dubbo, WebService等微服务框架。
8.熟悉RocketMQ,RabbitMQ消息中间件
9.深入理解微服务架构下,服务之间相互调用而产生的数据不一致问题原因以及问题解决方案。
10.熟悉使用seata分布式事务解决框架。
11.了解Socket,Netty,NIO,Http,WebSocket,zookeeper
12.熟悉html、Css、Ajax、JavaScript、Jquery、react等前端技术

项目经验

华康保健品商城 (线上域名:http://hkh.co.nz/)
项目描述:
华康保健品商城是一个B2C模式的在线购物平台,为用户提供便捷的网上购买方式,让用户更加方便的享受优质的产品。
使用技术与功能:
华康保健品商城采用前后端分离技术,后台采用springboot+springcloud框架, 使用mybatis数据库, redis缓存, ElasticSearch搜索引擎, RabbitMQ, FastDFS分布式文件存储系统,前端使用用vue框架。

主要服务与功能:
商品服务:提供对商品的增删改查等功能。
订单服务:提供新增订单,修改订单状态,查询订单等功能。
会员服务: 提供 注册,删除,修改会员,登录验证等功能。
支付服务:提供微信支付等支付通道。
文件服务:提供对文件的增删改查等功能。
ES服务:将数据库中的商品数据导入到ES中,客户端从ES中获取商品信息,进行页面展示
秒杀服务:将秒杀商品数据导入到redis缓存中,提供秒杀服务等功能。
Canal服务:当数据库中商品的库存数据,或者用户的权限缓存,以及广告内容等缓存数据发生变化时,及时刷新ES或者redis中的数据。

个人贡献:负责华康保健品商城架构的搭建,权限控制,秒杀,微信支付等功能的实现,以及分布式事务的解决。
项目父工程下包含common工程, common-db工程,eureka工程,网关gateway工程, service工程,service-api工程,web工程。
Common工程封装一些工具类,以及依赖一些公共jar,例如spring-boot-starter-web,redis,fastjson,eureka-client,避免在service工程下的各个子工程进行多次maven依赖不同的jar,,只需要依赖一次Common工程即可。
Common-db工程封装数据库maven依赖,有需要连接数据库操作的service可以通过依赖Common-db工程,对数据库进行连接操作。
Gateway工程:作为项目的网关,页面所有的请求,都需要经过网关,通过网关,可以对线上做第二次限流,以及对用户请求进行权限控制等操作。
Service工程:商品,订单,会员等服务工程的父工程。
service-api工程:提供对应服务的pojo(与表之间对应的javaBean),以及feign,方便不同服务之间调用时,只需要引入被调用的服务的service-api依赖即可。

在整个项目的权限控制中采用JWT+ springscrity进行权限的控制,当服务启动时,会将一个自定义实现了PermissionEvaluator的类注入到Bean容器,同时开启WebSecurity,以及GlobalMethodSecurity,并且获取数据库角色权限关系表中的数据,将数据库角色权限表的数据缓存到redis中,用户进行成功登录之后,会产生一个token返回给前端,token是通过JWT将用户的角色等信息作为载荷,以及Keytool生成的jks文件中的私钥作为加盐,生成的一串字符串。当用户请求经过网关到达对应的服务之后,对应的服务会通过实现一个filter,拦截所有的请求,并将请求中的token信息封装到到一个自定义实现了org.springframework.security.core.Authentication接口的类中,并将这个自定义的实现类设置为SecurityContext中Authentication属性的属性值,当请求对应的controller上没有@PreAuthorize注解时,则不会对用户请求进行权限控制,如果请求对应的controller有@PreAuthorize注解,则会在自定义的PermissionEvaluator的实现类中校验用户是否有权限访问该服务接口,在校验的过程中,通过JWT API以及Keytool生成的jks文件中的公钥解析token,即可获取到用户的角色,通过用户角色信息在redis中获取该角色对应的权限路劲,最后通过对比@PreAuthorize注解传入的路劲是否被包含在redis中获取权限路劲,即可知道用户是否有权限访问该服务接口。

在秒杀中,用户可以通过界面看到不同时间段下的秒杀商品,并可以选择当前时间段内的秒杀商品进行秒杀。通过定时任务将符合条件的秒杀商品添加到redis缓存中,之所以将秒杀商品添加到redis缓存中,是因为在秒杀抢购的过程中,为了避免因并发量过多,频繁访问数据库,给服务器造成过大压力,甚至导致服务崩溃,因此将秒杀商品添加到redis缓存,redis采用hash的数据类型进行保存秒杀商品数据,时间段(2019061812, 2019061814)作为

案例展示

  • GTS2

    GTS2

    负责GTS2授权服务的搭建,客户中心的改造,以及功能流程的优化 金道集团有很多不同的客户中心,同一个客户可能会在不同客户中心注册账号,避免客户重复注册,提高客户留存率,因此事业部提出只要用户在集团下的某一个客户中心注册过后,在其他的客户中心可以进行免注册登录。 用户通过手机

  • 长河共享平台

    长河共享平台

    项目描述: 长河共享管理平台系统支持多级别,多样化的运营系统,涵盖共享按摩椅,共享冰箱,共享娃娃机,共享摇摇车,共享空气净化器等多个共享项目,通过功能创新,极大的方便运营者对设备,收入以及经营状况进行查看管理。便于运营者通过数据对比做出运营决策,保障利润最大化。 .使用技术

查看案例列表(含更多 0 个案例)

信用行为

  • 接单
    0
  • 评价
    0
  • 收藏
    0
微信扫码,建群沟通

发布任务

企业点击发布任务,工程师会在任务下报名,招聘专员也会在1小时内与您联系,1小时内精准确定人才

微信接收人才推送

关注猿急送微信平台,接收实时人才推送

接收人才推送
联系聘用方端客服
联系聘用方端客服