# springboot **Repository Path**: liutongwei0205/springboot ## Basic Information - **Project Name**: springboot - **Description**: 使用springboot整合mybatisplus,springmvc,spring,jms,jmx,websocket等构建的项目 项目中使用了生产者,消费者分离的两个不同模块构成,在消费者中使用了策略模式对邮件的不同模板进行优化,以便代码的可读性与维护 具体功能可进入仓库浏览readme.txt文件 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-10-23 - **Last Updated**: 2024-10-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 项目说明 使用生产者消费者模式实现银行存取款转账操作 生产端: bank_web 1. jms+activemq 消息部分 消息队列 ---activemq信息中间件 mail: host: smtp.qq.com username: 2811659979@qq.com password: jvkdihnkrcyoddfe port: 587 protocol: smtp properties: mail: smtp: auth: true starttls: enable: true required: true activemq: broker-url: tcp://localhost:61616 user: admin password: admin 2. 异步编程: 线程池+异步调用 --》 提高性能 spring.task: execution: pool: max-size: 16 queue-capacity: 100 keep-alive: "10s" @EnableAsync @Async("taskExecutor") 3. 启用 druid数据库联接池 4. 启用 mybatis-plus 5. 在业务层上启用了AOP机制. org.springframework.boot spring-boot-starter-aop 使用@AspectJ定义切面等 每当进行存取款转账操作时,将相关信息存储到数据库中,同时将相关信息发送到消息队列中 6. 测试框架junit4 , 测试套件 7. 使用actuator对整个系统进行监控 8. 缓存: 对数据库的查询,更新使用缓存 ---》caffeine 消费端:bank_consumer 1. 使用jms消费端读取消息 2. 使用velocity读取邮件模板,并从消息队列中取出信息,渲染到模板中 针对不同模板引入--》策略模式 3. 策略模式 ---》为避免大量的if-else或switch-case语句,使代码更加清晰和易于维护。 4. 使用javax.mail发送邮件 5. 发送邮件时使用异步任务--》提高性能 6. 提供一个数据平台页面,显示实时发送情况 websocket双向通信 每当从信息队列中取出信息时,对页面数据进行实时更新 发送邮件数量 存取款转账操作信息