Terry部落简介

news2024/10/7 14:22:34

通过一个简单的服务,整理使用的技术

在这里插入图片描述

服务简介

Terry部落,基于目前主流 Java Web 技术栈(SpringBoot + MyBatis-plus + MySQL + Redis + Kafka + Elasticsearch + shiro + …)实现的个人博客服务。包含登陆、注册、文章发布、资源发布、鉴权、搜索、用户设置、数据统计等模块…其中资源相关信息接入了支付宝的当面付功能。

核心技术栈

后端:

  • Spring
  • Spring Boot
  • Spring MVC
  • ORM:MyBatis-plus
  • 数据库:MySQL 5.7
  • 分布式缓存:Redis
  • 本地缓存:guava
  • 消息队列:Kafka
  • 搜索引擎:Elasticsearch 7.2.0
  • 安全:shiro
  • 邮件任务:Spring Mail
  • 日志:SLF4J(日志接口) + Logback(日志实现)

前端:

  • Thymeleaf
  • layui

开发环境

  • 操作系统:mac
  • 构建工具:Apache Maven
  • 集成开发工具:Intellij IDEA
  • 接口测试工具:Postman
  • 压力测试工具:Apache JMeter
  • 版本控制工具:Git
  • Java 版本:8

界面展示

  1. 首页:
    在这里插入图片描述

  2. 登录注册:
    在这里插入图片描述
    在这里插入图片描述

  3. 文章发布(MarkDown):
    在这里插入图片描述

  4. 文章列表:
    在这里插入图片描述

  5. 文章详情:
    在这里插入图片描述

  6. 社会化分享
    在这里插入图片描述

  7. 资源发布:
    在这里插入图片描述

  8. 资源列表:
    在这里插入图片描述

  9. 资源详情:
    在这里插入图片描述

  10. 留言板:
    在这里插入图片描述

  11. 工具:
    在这里插入图片描述

  12. 无数据展示:
    在这里插入图片描述

  13. 搜索:
    在这里插入图片描述

  14. 提示:
    在这里插入图片描述

  15. 个人中心:
    在这里插入图片描述

  16. 个人设置:
    在这里插入图片描述

  17. 接口防刷:
    在这里插入图片描述

🎨 功能列表

  • 注册
  • 登录 | 登出
    • 动态生成验证码
  • 账号设置
    • 修改头像
    • 修改密码
  • 文章模块
    • 发布文章
    • 分页显示所有的文章
      • 先按照热度再按照时间进行排序
    • 查看文章详情
    • 权限管理(shiro)
      • 未授权用户无法发帖
  • 资源模块
    • 发布资源
    • 分页显示所有的资源
    • 查看资源详情
    • 权限管理(shiro)
  • 统一处理 404 / 500 异常
    • 普通请求异常
    • 异步请求异常
  • 统一记录日志
  • 点赞模块
    • 支持对帖子点赞
    • 第 1 次点赞,第 2 次取消点赞
    • 首页统计帖子的点赞数量
    • 详情页显示当前登录用户的点赞状态(赞过了则显示已赞)
    • 权限管理(shiro)
  • 搜索模块
  • 集成es实现搜索功能,针对文章title和content包含的关键字进行搜索
  • 防刷
  • 用户10ms内点击6次以上不再允许其进行访问该接口
  • 支付宝当面付
  • 个人简介模块
  • 与我联系模块
  • 数据统计
  • 集成GeoLite实现ip解析和统计

本地运行

各位如果需要将项目部署在本地进行测试,以下环境请提前备好:

  • Java 8
  • MySQL 5.7
  • Redis
  • Kafka
  • Elasticsearch 7.2.0

然后修改配置文件中的信息为你自己的本地环境,直接运行是运行不了的,而且相关私密信息我全部用 xxxxxxx 代替了。

本地运行需要修改的配置文件信息如下:

  1. application.yml:
  • MySQL
  • Spring Mail(邮箱需要开启 SMTP 服务)
  • Kafka:consumer.group-id(该字段见 Kafka 安装包中的 consumer.proerties,可自行修改, 修改完毕后需要重启 Kafka)
  • Elasticsearch:cluster-name(该字段见 Elasticsearch 安装包中的 elasticsearch.yml,可自行修改)
  • 阿里云oss(需要新建一个七牛云的对象存储空间,用来存放上传的头像图片)
  1. logback.xml:
  • LOG_PATH:日志存放的位置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/509590.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ACM - 数学 - 提高(还没学多少)

ACM - 数学 练习题 一、数论1、分解质因数 :AcWing 197. 阶乘分解2、求约数个数(1)AcWing 1294. 樱花 (求 n!约数个数之和)(2)AcWing 198. 反素数 (求 1 ~ N 中约数最多的…

human-NeRF 代码运行环境完全打包(根据照片视频生成三维模型)

包含模型和可以直接运行的数据的代码环境(window环境,linux应该也可以运行),下载链接放在文章最后,不需要你自己再去下载任何的代码和模型了。 下载后输入三行命令在命令行界面即可将代码跑起来: pip insta…

C++14:AVL树

由于二叉搜索树在某些特定的情况下会退化成单叉树,为了解决这个问题,保证二叉搜索树能在绝大多数情况下保持高速搜索,G.M. Adelson-Velsky和E.M. Landis这两位俄国数学家提出了AVL树的概念,也就是高度平衡的搜索二叉树。 AVL树平衡大体逻辑&…

ACM - 数据结构 - 基础(数组模拟链表 / 栈 / 队列 + 字典树 + 并查集 + 堆 + 哈希)

数据结构 一、线性表1、单链表模板题:AcWing 826. 单链表 2、双链表模板题 AcWing 827. 双链表 3、栈数组模拟栈模板 AcWing 828. 模拟栈逆波兰简版模板例题1、逆波兰表达式:HDU 1237 简单计算器(写得有点复杂) 4、队列数组模拟队…

接口自动化测试可以使用的几个常用的框架

接口自动化测试可以使用以下几个常用的框架: 1、pytest pytest是一个用于Python编写单元测试和功能测试的框架。它提供了简洁的语法、灵活的扩展性和丰富的插件,可以帮助开发人员高效地编写测试用例,并快速定位和解决问题。 以下是pytest的…

数据结构刷题(三十一):1049. 最后一块石头的重量 II、完全背包理论、518零钱兑换II

一、1049. 最后一块石头的重量 II 1.思路:01背包问题,其中dp[j]表示容量为j的背包,最多可以背最大重量为dp[j]。 2.注意:递推公式dp[j] max(dp[j], dp[j - stones[i]] stones[i]);本题中的重量就是价值,所以第二个…

边缘计算盒子适合用于哪些场景?

边缘计算盒子适用于在智慧工地、智慧工厂、智慧园区和智慧城管等场景中可以实现多种算法功能,以下是一些应用和实现算法功能: 智慧工地:实时视频监控与分析:边缘计算盒子可以处理实时监控视频流,进行人员和车辆识别、…

OpenPCDet系列 | 5.PointPillars模型前向传播完整流程

文章目录 前向传播流程1. 模型初始化2. 模型训练前向传播前向传播流程 这里以PointPillars模型为例,在PointPillars模型中主要划分了以下4个主要的模块,以下某块首先会在build_network中进行初始化,然后在具体前向传播时通过forward函数进行。下面进行区分。 PointPillars…

新颖拓扑指纹助力虚拟筛选:ToDD革新计算机辅助药物发现之路

编译 | 于洲 今天我们介绍由Novartis集团的Novartis与德克萨斯大学达拉斯分校的Baris Coskunuzer为第一作者发表在NeurIPS 2022会议上的工作,文章介绍了一种新的虚拟筛选方法——ToDD模型,该方法使用了多参数持久性同调(MP)来生成…

wx.request get请求重定向问题

微信小程序wx.request请求,重定向问题。 背景 在开发微信小程序项目的时候,使用wx.request请求一个公共接口,结果请求被重定向多次之后,返回失败,而且没有 code 码,只有一个 errMsg: request:fail。 Netw…

OpenShift - 使用 Ansible Automation Platform 纳管 OpenShift Virtualization 虚机

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在支持 OpenShift 4.12 的 OpenShift 环境中验证 本文所用到的运行环境和配置方法请先参照以下 blog 准备: 《OpenShift 4 - 安装部署 Ansible Automation Platform 4.x 控制台》《OpenShift …

React 组件

文章目录 React 组件复合组件 React 组件 本节将讨论如何使用组件使得我们的应用更容易来管理。 接下来我们封装一个输出 “Hello World&#xff01;” 的组件&#xff0c;组件名为 HelloMessage&#xff1a; React 实例 <!DOCTYPE html> <html> <head> &…

css中的grid高频布局

1.需求 1.一个父级容器内有n个子元素; 2.每个子元素最小宽度是100px&#xff1b; 3.每个子元素最大宽度根据屏幕宽度自适应&#xff1b; 4.每个子元素的宽度保持同宽&#xff1b; 5.每个元素之间有间隔&#xff0c;每一行的两边不留间隙&#xff0c;每一列的上下不留间隙&…

2.V853支持WIFI和有线网卡

100ASK-V853-PRO开发板支持WIFI和有线网卡 0.前言 ​ 通过上一章节&#xff0c;我们已经成功下载Tina SDK包&#xff0c;完成编译并烧写Tina Linux系统&#xff0c;接下来展示100ASK_V853-PRO开发部如何通过WIFI和有线网卡进行上网。 全志Linux Tina-SDK开发完全手册&#x…

02-mysql升级篇(rpm方式+压缩包升级)

文章目录 升级方式一、二进制方式安装1、下载mysql-5.7.42安装包&#xff08;mysql-5.7.37升级mysql-5.7.42&#xff09;2、备份数据库、my.cnf文件&#xff0c;停止mysql服务&#xff08;重要&#xff09;3、查看当前数据库版本3、上传 mysql-5.7.42-1.el7.x86_64.rpm-bundle.…

SpringMVC 详解

文章目录 一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点 二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式&#xff1a;warc>引入依赖 3、配置web.xmla>默认配置方式b>扩展配置方式 4、创建请求控制器5、创建springMVC…

关于太阳黑子数的查询

太阳黑子数查询地址&#xff1a;点此跳转 浏览器中打开下图所示的网站。 根据自己的需求下载相应的文件查找太阳黑子数&#xff0c;下载时可以选择 TXT 文件格式&#xff0c;也可以选择 CSV 文件格式。 我下载了每日估计的太阳黑子数&#xff0c;TXT 格式文件打开如下图所示。…

免费下载的无水印人物素材网站!

在日常设计中&#xff0c;设计师常常需要使用人物素材来提升设计作品的吸引力。一个可爱的人物插画可以使网页界面更加生动&#xff0c;一个富有个性的人物素材可以让应用程序更具吸引力&#xff0c;引发用户的共鸣。但设计师有时会苦恼于找不到合适的人物素材网站&#xff0c;…

PCB制板基础知识[详细版]

一、PCB概念 PCB&#xff08;PrintedCircuitBoard&#xff09;&#xff0c;中文名称为印制电路板&#xff0c;又称印刷电路板、印刷线路板&#xff0c;是重要的电子部件&#xff0c;是电子元器件的支撑体&#xff0c;是电子元器件电气连接的提供者。由于它是采用电子印刷术制…

USB descriptor

如下为oneplus的插入MIDI模式 device descriptor 注意&#xff1a;1个device只有一个描述符 bNumConfigurations 标识只有一个配置&#xff0c;该配置只属于一个传输速度 通过getDescriptor的方法获得&#xff0c;需要指定wvalue为deivce descriptor,至于index可以为0 大概1…