Skip to content
View maomao124's full-sized avatar
😐
😐
  • undefined
  • 中国广东广州
  • 11:47 (UTC +08:00)

Block or report maomao124

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Please don't include any personal information such as legal names or email addresses. Maximum 100 characters, markdown supported. This note will be visible to only you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
maomao124/README.md

每天一点代码,纪录自己成长


QQ:1296193245

目前大四刚毕业,正在找工作


学习笔记




技能

  • 熟悉java基础知识,对集合类有一定的研究,熟悉HashMap、ArrayList的实现原理,对java的IO模型等有一定的了解
  • 熟悉spring、springMVC、Mybatis、MyBatis Plus等主流框架的使用
  • 熟悉spring框架的使用,对AOP、循环依赖spring事务失效场景等有一定了解,曾经写过一个简易的spring框架
  • 熟悉Spring Boot框架的使用,熟悉Spring Boot Starter的开发流程
  • 熟悉关系型数据库MySQL,对事务、索引、SQL性能分析、索引失效情况、SQL优化、锁等有一定的了解,会使用mycat中间件做分库分表
  • 熟悉常用的java设计模式,对6种设计原则和23种设计模式有一定的了解
  • 掌握并发编程的相关知识,熟悉管程、多线程、synchronized原理、volatile原理、CAS、原子类、原子累加器、Unsafe、线程池、JUC包下部分类、AQS等
  • 熟悉JVM内存结构、常见垃圾回收算法、垃圾回收器等
  • 熟练掌握基于spring cloud的微服务的搭建与开发,包括其组件Eureka、Nacos、Feign、Zuul网关、gateway网关、sentinel、Hystrix、seata等,熟悉Dubbo框架开发
  • 熟悉基于Redis、Zookeeper实现的分布式锁方案
  • 熟悉常用的缓存中间件Redis以及应用场景,对缓存问题以及缓存问题解决方案、持久化机制、集群、批处理优化、Redis数据结构、Redis RESP2.0通信协议、内存淘汰策略等有比较深的理解,曾经使用RESP2.0协议写了一个简易的Redis java客户端,熟悉j2cache的使用
  • 熟悉mongoDB的使用
  • 熟悉Linux常用命令
  • 熟悉使用ElasticSearch搜索中间件进行数据搜索,基本掌握Logstash和Kibana的使用,能使用elk做日志收集与展示
  • 熟悉RabbitMQ、RocketMQ消息中间件的使用,对RabbitMQ确保消息不丢失、消息堆积、幂等问题等有一定的了解
  • 熟悉容器化技术Docker的使用
  • 了解Zookeeper分布式协调框架的使用。
  • 掌握spring security安全框架的使用
  • 熟练使用IDEA、Git、Maven等开发工具、能使用Postman、knife4j swagger、jmeter等测试工具做接口测试
  • 熟悉HTML、CSS、JavaScript的使用、掌握Vue、TypeScript、和element UI的使用
  • 有对接支付宝和微信第三方支付工具的经验
  • 掌握网络框架Netty的使用,掌握服务集群共享channel解决方案
  • 掌握Nginx的使用
  • 掌握java报表技术
  • 掌握数据可视化技术JFreechart、Highcharts和Echarts的使用



项目

小项目非常多,只列举一部分代码行数在5000行以上的项目


基于SpringCloud+Netty实现的在线网络聊天室

  • 时间:2023/03/27 - 2023/04/23

  • 项目名称:netty_chat_room

  • 技术:请看项目readme文件

  • 项目地址:点击进入

  • 代码行数:48700行左右

  • 项目介绍:基于SpringCloud+Netty实现的在线网络聊天室。netty服务是集群部署的,netty共享channel解决方案。

    用户方面,有用户登录、用户注册、发送消息、发送群聊消息、创建群聊、加入群聊、查看群聊成员、退出群聊等功能;

    后台方面,有登录次数统计、登录UV统计、注册统计、消息发送统计、群聊消息发送统计、群聊创建统计、Netty服务ReBalance、用户管理、后台用户、资源、角色、菜单、组织、岗位管理、后台用户认证和鉴权等功能。

项目模块:

authority                    #聚合工程,用于聚合parent、apps、tools等模块
├── parent				     # 父工程,nacos配置及依赖包管理
├── apps					 # 应用目录
	├── auth				 # 权限服务父工程
		├── auth-entity      # 权限实体
		├── auth-server      # 权限服务
	├── gateway			     # 后台网关服务
	├──chat-room             # 在线聊天室应用
	    ├──chat-room-client-api        # 客户端api模块,放不同类型、不同平台客户端的公共代码的模块
	    ├──chat-room-common            # 在线聊天室公共模块,放客户端和服务端公共代码的模块
	    ├──chat-room-console-client    # 在线聊天室控制台客户端
	    ├──chat-room-console-test-client   # 在线聊天室控制台压力测试客户端(不提供给用户使用)
	    ├──chat-room-gateway           # 在线聊天室用户http服务网关
	    ├──chat-room-manage            # 聊天室后台管理服务和统计服务
	    ├──chat-room-netty-server      # 在线聊天室netty服务
	    ├──chat-room-server-api        # 服务端api模块,放不同类型、不同平台服务端的公共代码的模块
	    ├──chat-room-swing-client      # 在线聊天室java SWing客户端
	    ├──chat-room-web-server        # 在线聊天室web服务 ,向用户提供http服务
└── tools				     # 工具工程
	├── tools-common		 # 基础组件:基础配置类、函数、常量、统一异常处理、undertow服务器
	├── tools-core		     # 核心组件:基础实体、返回对象、上下文、异常处理、分布式锁、函数、树
	├── tools-databases	     # 数据源组件:数据源配置、数据权限、查询条件等
	├── tools-dozer		     # 对象转换:dozer配置、工具
	├── tools-redis-cache    # redis分布式缓存工具类和分布式锁服务,缓存工具类解决著名的3个缓存问题
	├── tools-j2cache	     # 缓存组件:j2cache、redis缓存
	├── tools-jwt            # JWT组件:配置、属性、工具
	├── tools-log	         # 日志组件:日志实体、事件、拦截器、工具
	├── tools-swagger2	     # 文档组件:knife4j文档
	├── tools-user           # 用户上下文:用户注解、模型和工具,当前登录用户信息注入模块
	├── tools-validator	     # 表单验证: 后台表单规则验证
	├── tools-xss		     # xss防注入组件



毕业设计 聚合支付

  • 时间:2023/01/06 - 2023/02/09 或者 2022/10/25 - 2023/02/09
  • 项目名称:aggregate-pay
  • 技术:SpringBoot、Zuul、Nacos、Fegin、Ribbon、Hystrix、JWT Token、Mybatis Plus、AntiSamy、dozer、redis分布式缓存、RocketMQ、FreeMacker、Oauth2.0、knife4j swagger等
  • 项目地址:点击进入
  • 代码行数:116400行左右(java文件)
  • 项目介绍: 聚合支付顾名思义就是将目前主流的支付进行整合,形成第三方支付的聚合通道。聚合支付是一个提供聚合支付的平台,聚合支付目前主要的做法就是线上聚合收银台(开放API),线下C2B一码多付、线下B2C商家扫码。平台应以SaaS服务形式提供给各商户订单管理、门店管理、财务数据统计等基础服务,聚合支付还以支付为入口,通过广告、营销、金融等服务,构建一个移动支付的全生态系统。 聚合支付不进行资金清算,因此无需支付牌照,其只是完成支付环节的信息流转和商户运营的承载,其在集合银联、支付宝、微信等主流支付方式的基础上,帮助商户降低接入成本,提高运营效率,具有中立性、灵活性、便捷性等特点

项目模块:

aggregate-pay                    # 聚合工程,用于聚合parent、apps、tools等模块
  ├── parent				     # 父工程,nacos配置及依赖包管理
  ├── apps					     # 应用目录
  	   ├── auth				     # 权限服务父工程
  		   ├── auth-entity       # 权限实体
  		   ├── auth-server       # 权限服务
  	   ├── gateway			     # 网关服务
  	   ├── pay                   # 整个聚合支付系统的父模块
  		   ├── aggregate-pay-common                # 聚合支付系统的公共模块,主要存放一些工具类
  		   ├── aggregate-pay-entity                # 聚合支付系统实体类模块,存放实体类
  		   ├── aggregate-pay-gateway               # 聚合支付系统SaaS系统的网关
  		   ├── aggregate-pay-log                   # 日志模块,用于异步接收其它服务产生的操作日志和接收登录日志,提供分页查询日志的功能
  		   ├── aggregate-pay-merchant              # 商户服务父模块
  		        ├── aggregate-pay-merchant-api     # 商户服务API模块,用于存放商户服务的DTO类、feign接口、服务降级FallbackFactory
  		        ├── aggregate-pay-merchant-service # 商户服务
  		   ├── aggregate-pay-merchant-application  # 商户平台应用服务
           ├── aggregate-pay-payment-agent         # 支付聚道代理服务父模块
                ├── aggregate-pay-payment-agent-api      # 支付聚道代理服务API模块,用途和商户服务API模块一样
                ├── aggregate-pay-payment-agent-service  # 支付聚道代理服务,主要用于对接第三方支付平台
           ├── aggregate-pay-sms                   # 聚合支付短信服务,给聚合支付平台提供发送短信和校验短信功能,和短信系统对接
           ├── aggregate-pay-transaction           # 聚合支付系统交易服务父模块
                ├── aggregate-pay-transaction-api  # 交易服务API模块,用于存放商户服务的DTO类、feign接口、服务降级FallbackFactory
                ├── aggregate-pay-transaction-service    # 交易服务,交易相关
  		   ├── aggregate-pay-uaa                   # 聚合支付系统SaaS系统的认证和授权服务的父模块
  		        ├── aggregate-pay-uaa-api          # 认证和授权服务API模块,用途和商户服务API模块一样
  		        ├── aggregate-pay-uaa-service      # 聚合支付系统SaaS系统的认证和授权服务
  		   ├── aggregate-pay-user                  # 聚合支付系统用户服务父模块
  		        ├── aggregate-pay-user-api         # 聚合支付系统用户服务API模块
  		        ├── aggregate-pay-user-service     # 聚合支付系统用户服务
  	   ├── sms            	     # 短信平台父工程
  	        ├──sms-entity		 # 短信平台实体
  	        ├──sms-dao           # 短信平台的数据持久化模块,主要包括mybatis plus的mapper文件和mapper接口
  	        ├──sms-manage		 # 系统管理服务
  	        ├──sms-api			 # 短信接收服务,应用系统调用接口、发送短信
  	        ├──sms-server		 # 短信发送服务,调用短信通道、发送短信
  	        └──sms-sdk			 # 短信SDK,应用系统引入、发送短信
  └── tools				         # 工具工程
  	   ├── tools-common		     # 基础组件:基础配置类、函数、常量、统一异常处理、undertow服务器
  	   ├── tools-core		     # 核心组件:基础实体、返回对象、上下文、异常处理、分布式锁、函数、树
  	   ├── tools-databases	     # 数据源组件:数据源配置、数据权限、查询条件等
  	   ├── tools-dozer		     # 对象转换:dozer配置、工具
  	   ├── tools-redis-cache    # redis分布式缓存工具类和分布式锁服务,缓存工具类解决著名的3个缓存问题
  	   ├── tools-j2cache	     # 缓存组件:j2cache、redis缓存
  	   ├── tools-jwt             # JWT组件:配置、属性、工具
  	   ├── tools-log	         # 日志组件:日志实体、事件、拦截器、工具
  	   ├── tools-swagger2	     # 文档组件:knife4j文档
  	   ├── tools-user            # 用户上下文:用户注解、模型和工具,当前登录用户信息注入模块
   	   ├── tools-validator	     # 表单验证: 后台表单规则验证
  	   ├── tools-xss		     # xss防注入组件



集信达短信平台

  • 时间:2022/12/14 - 2023/01/05 或者 2022/10/25 - 2023/01/05
  • 项目名称:sms-backend
  • 技术:SpringBoot、Nacos、Mybatis Plus、redis、Redission分布式锁等
  • 项目地址:点击进入
  • 代码行数:55000行左右
  • 项目介绍:一个统一入口、减少对接成本、同时兼顾多种短信业务、简单易行的操作与维护、高稳定、高可靠的短信平台。通过智能动态的通道评级、选举、降级、热插拔,增强了系统的健壮性,摆脱对单一通道的依赖。并且提供多种对接方式的短信发送和管理平台

项目模块:

sms-backend                      # 聚合工程,用于聚合parent、apps、tools等模块
  ├── parent				     # 父工程,nacos配置及依赖包管理
  ├── apps					     # 应用目录
  	   ├── auth				     # 权限服务父工程
  		   ├── auth-entity       # 权限实体
  		   ├── auth-server       # 权限服务
  	   ├── gateway			     # 网关服务
  	   ├── sms            	     # 短信平台父工程
  	        ├──sms-entity		 # 短信平台实体
  	        ├──sms-dao           # 短信平台的数据持久化模块,主要包括mybatis plus的mapper文件和mapper接口
  	        ├──sms-manage		 # 系统管理服务
  	        ├──sms-api			 # 短信接收服务,应用系统调用接口、发送短信
  	        ├──sms-server		 # 短信发送服务,调用短信通道、发送短信
  	        └──sms-sdk			 # 短信SDK,应用系统引入、发送短信
  └── tools				         # 工具工程
  	   ├── tools-common		     # 基础组件:基础配置类、函数、常量、统一异常处理、undertow服务器
  	   ├── tools-core		     # 核心组件:基础实体、返回对象、上下文、异常处理、分布式锁、函数、树
  	   ├── tools-databases	     # 数据源组件:数据源配置、数据权限、查询条件等
  	   ├── tools-dozer		     # 对象转换:dozer配置、工具
  	   ├── tools-redis-cache    # redis分布式缓存工具类和分布式锁服务,缓存工具类解决著名的3个缓存问题
  	   ├── tools-j2cache	     # 缓存组件:j2cache、redis缓存
  	   ├── tools-jwt             # JWT组件:配置、属性、工具
  	   ├── tools-log	         # 日志组件:日志实体、事件、拦截器、工具
  	   ├── tools-swagger2	     # 文档组件:knife4j文档
  	   ├── tools-user            # 用户上下文:用户注解、模型和工具,当前登录用户信息注入模块
   	   ├── tools-validator	     # 表单验证: 后台表单规则验证
  	   ├── tools-xss		     # xss防注入组件



通用权限系统

  • 时间:2022/10/25 - 2022/11/14
  • 项目名称:authority
  • 技术:SpringBoot、Zuul、Nacos、Fegin、Ribbon、Hystrix、JWT Token、Mybatis Plus、AntiSamy、j2cache、dozer等
  • 项目地址:点击进入
  • 代码行数:28900行左右
  • 项目介绍:对于企业中的项目绝大多数都需要进行用户权限管理、认证、鉴权、加密、解密、XSS防跨站攻击等。这些功能整体实现思路基本一致,但是大部分项目都需要实现一次,这无形中就形成了巨大的资源浪费。本项目就是针对这个问题,提供了一套通用的权限解决方案。项目具备通用的用户管理、资源权限管理、网关统一鉴权、XSS防跨站攻击等多个模块,支持多业务系统并行开发,支持多服务并行开发,可以作为后端服务的开发脚手架去使用。

项目模块:

authority                    #聚合工程,用于聚合parent、apps、tools等模块
├── parent				     # 父工程,nacos配置及依赖包管理
├── apps					 # 应用目录
	├── auth				 # 权限服务父工程
		├── auth-entity      # 权限实体
		├── auth-server      # 权限服务
	├── gateway			     # 网关服务
└── tools				     # 工具工程
	├── tools-common		 # 基础组件:基础配置类、函数、常量、统一异常处理、undertow服务器
	├── tools-core		     # 核心组件:基础实体、返回对象、上下文、异常处理、分布式锁、函数、树
	├── tools-databases	     # 数据源组件:数据源配置、数据权限、查询条件等
	├── tools-dozer		     # 对象转换:dozer配置、工具
	├── tools-redis-cache    # redis分布式缓存工具类和分布式锁服务,缓存工具类解决著名的3个缓存问题
	├── tools-j2cache	     # 缓存组件:j2cache、redis缓存
	├── tools-jwt            # JWT组件:配置、属性、工具
	├── tools-log	         # 日志组件:日志实体、事件、拦截器、工具
	├── tools-swagger2	     # 文档组件:knife4j文档
	├── tools-user           # 用户上下文:用户注解、模型和工具,当前登录用户信息注入模块
	├── tools-validator	     # 表单验证: 后台表单规则验证
	├── tools-xss		     # xss防注入组件



漫画app

  • 时间:2022/10/12 - 2022/10/26
  • 项目名称:CartoonApp
  • 技术:Android
  • 项目地址:点击进入
  • 代码行数:11500行左右
  • 项目介绍:一款基于安卓的观看漫画的app,实现了漫画排行榜、漫画目录、收藏夹、历史记录、漫画搜索、漫画更新推送服务等



酒店管理项目

  • 时间:2022/05/?? - 2022/06/04
  • 项目名称:elasticsearch_hotel_management、elasticsearch_hotel_final
  • 技术:elasticsearch、rabbitMQ、spring boot
  • 项目地址:elasticsearch_hotel_managementelasticsearch_hotel_final
  • 代码行数:前端1000行、后端4000行
  • 项目介绍:写这个项目的目的是学习elasticsearch



黑马点评项目

  • 时间:2022/05/12 - 2022/05/21
  • 项目名称:spring_boot_redis_hmdp_final
  • 技术:redis、Redisson、spring boot
  • 项目地址:点击进入
  • 代码行数:10821行
  • 项目介绍:
  • 这是一个以学习redis为目的的前后端分离的项目。 学完本项目收获: 1.分布式环境下基于token实现登录 2.使用redis作为缓存来查询商户信息,解决缓存穿透、缓存雪崩、缓存击穿问题,封装缓存操作工具类 3.缓存更新策略 4.优惠券秒杀,超卖问题解决方案,乐观锁 5.redisson分布式锁 6.使用消息队列实现异步秒杀 7.使用redis实现点赞功能 8.使用redis实现好友共同关注 9.使用redis的GEO数据结构实现查询附近商铺功能 10.使用redis的bitmap数据结构实现用户签到



数据库课程设计_基于mysql的学生信息管理系统javaWeb实现

  • 时间:2022/01/31 - 2022/02/23
  • 项目名称:Java_Web_Implementation_of_student_information_management_system_based_on_MySQL
  • 技术:javaweb、JDBC、JDBC连接池、MySQL、servlet、jsp、jstl、HTML、CSS、js、animate动画库
  • 项目地址:点击进入
  • 代码行数:33403行
  • 项目介绍:数据库课程设计、目的是学习怎么使用JDBC去操作mysql数据库,写这个项目的目的是学习jdbc的操作、html、css、jsp等



java课程设计 Swing实现文本编辑器

  • 时间:2021/12/07 - 2021/12/22
  • 项目名称:java_course_design_Swing_implements_text_editor
  • 技术:java swing
  • 项目地址:点击进入
  • 代码行数:6044行
  • 项目介绍:基于java swing实现的文本编辑器

Pinned Loading

  1. Android_study_notes Android_study_notes Public

    Android学习笔记

    HTML

  2. java_concurrent_programming_study_notes java_concurrent_programming_study_notes Public

    java并发编程学习笔记

    HTML

  3. java_design_patterns_study_notes java_design_patterns_study_notes Public

    java设计模式学习笔记

    HTML

  4. SpringCloud_StudyNotes SpringCloud_StudyNotes Public

    SpringCloud学习笔记

    HTML 1

  5. elasticsearch_studyNotes elasticsearch_studyNotes Public

    elasticsearch学习笔记

    HTML

  6. redisStudyNotes redisStudyNotes Public

    redis学习笔记

    HTML