# wallet-parent **Repository Path**: console_exchange-console_test/wallet-parent ## Basic Information - **Project Name**: wallet-parent - **Description**: 这是一个包含所有基础功能的钱包App后台Java项目。采用分布式微服务架构,拥有高性能,高可用,易扩展,可伸缩等特点。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2020-09-27 - **Last Updated**: 2022-03-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 引言 这是一个包含所有基础功能的钱包App后台Java项目。采用分布式微服务架构,拥有高性能,高可用,易扩展,可伸缩等特点。 ## 技术选型 * 核心框架:Spring Boot 2.1.7.RELEASE、Spring Framework 5.1.9.RELEASE * RPC框架:Dubbo 2.6.5 * 消息中间件:RocketMQ 4.2.0 * 云框架:AWS SDK 2.7.10、Aliyun 3.5.0 * 安全框架:Apache Shiro 1.4.0 * 服务端验证:Hibernate Validator 6.0.17、Jwt 3.8.1 * 持久层框架:JPA 2.1.10 RELEASE * 数据库连接池:Alibaba Druid 1.1.18 * 缓存框架:Redis 3.x、Jedis 2.9.3 * 日志管理:SLF4J 1.7、Log4j、logback * 工具类:Apache Commons、FastJson 1.2.58、HuTool 4.5.16、Guava 16.0.1 ## 技术特点 * 架构分层为公用实体、公用组件、业务网关、业务层及接口层 * 统一管理Jar包版本、封装简化pom.xml,使其服务扩展方便,降低依赖复杂度 * 集成Maven环境变量,避免环境切换导致的研发及生产问题 * 使用自定义Shell脚本并利用assembly插件打包服务为Zip包,降低服务发布难度 * 优化服务Jar包启动参数(打开JMX监控、强制使用G1 GC、针对性优化GC参数、记录GC及内存溢出DUMP日志) * 分布式全局唯一ID(org.wallet.dap.sequence.SequenceGenerator) * 基于Redis实现的分布式锁(org.wallet.dap.cache.lock.DapLock) * 封装公用缓存Bean(org.wallet.dap.cache.Cache) * 二次封装JPA CRUD,简化JPA查询、排序及分页难度(org.wallet.service.common.dao.\*) * 定义事务切面,简化事务管理(org.wallet.service.common.config.TransactionAdviceConfig) * 封装数据源连接池配置,简化服务集成数据库连接池难度(org.wallet.service.common.config.DruidConfig) * 封装Service CRUD降低单表业务研发难度(org.wallet.service.common.service.CrudService) * 封装Dubbo业务服务,使其抽取、使用、调用Dubbo服务更简单,方便
org.wallet.dap.common.dubbo.IService
org.wallet.dap.common.dubbo.ServiceRequest
org.wallet.dap.common.dubbo.ServiceResponse
org.wallet.service.common.service.dubbo.BaseDubboService * 封装RocketMQ,降低使用难度(org.wallet.dap.mq.RocketMQListener) * 分离DTO、Entity、常量及枚举,规范业务分层及代码分区
org.wallet.common.constants.\*
org.wallet.common.dto.\*
org.wallet.common.entity.\*
org.wallet.common.enums.\* * Shiro集成JWT使其后台管理网站实现前后端分离、降低耦合(org.wallet.web.admin.shiro.ShiroJwtFilter) * App接口实现接口版本注解、可根据接口版本及App版本自定义研发App接口
org.wallet.web.common.mvc.version.ApiVersion
org.wallet.web.common.mvc.version.AppVersion * 根据Http协议封装接口异常响应(org.wallet.web.common.mvc.controller.GlobalExceptionHandler) * 封装XSSFilter,有效防止脚本攻击(org.wallet.web.common.mvc.XssFilter) * 严格按照RESTFul方式定义接口,有效降低前后端沟通成本 * 使用Redis实现自定义Token机制(org.wallet.web.common.mvc.token.TokenInterceptor) * 使用自定义接口加密、签名方式。即便未使用Https也能有效增加接口安全(org.wallet.web.common.crypto.*)