基于SSM(Spring+SpringMVC+Mybatis)实现的个人博客系统,含数据库文件及详细说明

news2024/9/25 23:17:27

关于项目

该博客是基于SSM实现的个人博客系统,适合初学SSM和个人博客制作的同学学习。

最新版本支持用户注册,包含用户和管理员两个角色 。

博主已写了一篇该项目的毕业论文和录制了2个小时的代码讲解可以供大家学习,需要的可以联系博主,微信847064370。

主要涉及技术包括的包括 Maven、Spring、SpringMVC、MyBatis、JSP、MySQL等。

完整代码下载地址:基于SSM(Spring+SpringMVC+Mybatis)实现的个人博客系统

效果预览

前台效果图

在这里插入图片描述


后台效果图
![在这里插入图片描述](https://img-blog.csdnimg.cn/9911908a070c4506a8ee2f65ca709ece.png)

后台地址:/admin 或者 /login

使用注意

1.开发工具的选择

请使用 IntelliJ IDEA, 尽量不要用 Eclipse/MyEclipse,使用前者项目起不来我可以帮忙解决,后者直接忽视(理论上可以起)

2.确保你安装了 Maven

从官网下载 Maven,并配置阿里云镜像,IDEA 或 Eclipse 里需要设置 Maven 的 settings.xml 。

3.请安装 Lombok 插件

代码中多次使用 @Data 注解,请确保你的 IDE 安装了 Lombok 插件,否则找不到 getter/setter 方法。如果你的 lombok 无效,可能是 pom.xml 里的 lombok 版本和你安装的lombok 版本相差较大。

无论是 Eclipse 还是 IDEA 都需要安装 lombok。

4.项目首页没有文件夹名称

确保 tomcat 配置中 application context 是 /,而不是 /ForestBlog。这是导致你们首页css样式全无的原因,因为引用css路径都是 /xxx/xxx.css

使用步骤

1、克隆项目

克隆或者下载项目到本地,解压,主要分为三个部分:ForestBlog、uploads 和 forest_blog.sql

ForestBlog: 完整项目源码, 可以使用 IDEA 导入或者打开,记得要导入里面那个 ForestBlog项目,即 pom.xml所在的父目录。

uploads: 上传图片的目录,与源码分离开来,可以放到物理磁盘某一目录,如D盘某目录,后面会讲

forest_blog.sql: 数据库文件,请先创建数据库,然后以运行sql文件方式导入

2.使用 IDEA 导入Maven项目

确保你安装了 Maven,导入项目时,选择已存在的项目,类型是 Maven 项目。

等待Maven下载完依赖,或者手动点击刷新,如果无法下载请检查 Maven 配置和切换网络,多次尝试。

导入完成后,如果出现Java类里红色报错,多半是 Lombok 插件没有安装。

3、 导入数据库

新建数据库 forest_blog,导入数据库(即forest_blog.sql)。注意,数据库的编码和排序规则是utf-8和utf-8_general_ci

4、修改项目中的数据库连接信息

修改 db.properties 文件,该文件很容易找到,在 src/main/resources 中

里面有 MySQL, 请确保已安装和启动 MySQL

注意修改数据库地址、表名、用户名和密码。

否则项目无法启动

5、配置 tomcat 和 uploads 目录

该项目是 SSM 项目,没有启动类,需要通过 tomcat 来运行。无论是 Eclipse 还是 IDEA 都很容易。

这里主要说一下上传目录映射问题:

该项目中,文件上传是传到本地,且和项目文件夹不在一起,就是说是源码和上传目录是分离的。

比如我们把 uploads 目录放到 E盘根目录(建议直接把我的那个uploads文件夹拷贝到D盘根目录),比如有一张图片路径是 D:/uploads/2017/10/avatar.jpg, 我们想在项目中以 http://loclahost:8080/uploads/2017/10/avatar.jpg 方式访问,需要以下两步:

1、 修改 UploadFileController.java 中上传路径,需要修改 rootPath 为你指定的 uploads 目录,如 String rootPath ="D:/uploads/";

如果不修改,会出现无法上传失败;

2、为 tomcat 设置 uploads 映射。

  • IDEA 操作如下:

    在 tomcat 配置中 Deployment 里面添加,如图
    在这里插入图片描述
    在这里插入图片描述

  • Eclispe 操作如下:

    在 Server/server.xml 的 前面添加

<Context path="/" docBase="项目路径,不需要改" debug="0" reloadable="true" />
<Context path="/uploads" docBase="D:/uploads/" debug="0" reloadable="true" />
  • Linux 服务器环境部署

在 tomcat/conf/server.xml 的 Host 标签内添加如下代码

<Context path="/" docBase="项目路径如 /www/server/tomcat/webapps/ForestBlog" debug="0" reloadable="true" />
<Context path="/uploads" docBase="/www/uploads" debug="0" reloadable="true" />

如果不修改,会出现uploads的图片无法加载,无法显示上传目录的图片

完整代码下载地址:基于SSM(Spring+SpringMVC+Mybatis)实现的个人博客系统

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

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

相关文章

RFID在模块管理中的应用

应用背景 模具是工业生产的基础工艺装备&#xff0c;被称为“工业之母”。作为国民经济的基础行业&#xff0c;模具涉及机械、汽车、轻工、电子、化工、冶金、建材等各个行业&#xff0c;应用范围十分广泛。模具资产管理采用传统的人工纸质记录的方式已经无法及时有效的进行&am…

还在用 XShell - 试试 IntelliJ IDEA 的 SSH

SSH 是很多人用得不多&#xff0c;但是又不得不用的工具。 如果你不是搞运维&#xff0c;没有必要搞个 CRT&#xff0c;XShell 也够用了&#xff0c;但是这 2 个都是收费软件&#xff0c;同时还不太便宜。 试试 IDEA 的 SSH 其实 IntelliJ IDEA 已经提供了 SSH 的功能。 如…

053-线程的状态改变及线程同步详细介绍

【上一讲】051-java线程的2种实现方法详解_CSDN专家-赖老师(软件之家)的博客-CSDN博客 线程可以处于以下四个状态之一1.新建(new):线程对象已经建立,但还没有启动,所以他不能运行。2.就绪(runnable):这种状态下,只要调度程序把时间片分配给线程就可以执行,也就是说…

10分钟带你了解什么是ArrayBuffer?

前言 很多时候我们前端开发是用不到 ArrayBuffer 的&#xff0c;但是用不到 ArrayBuffer 不代表我们不需要了解这个东西。本文就围绕 ArrayBuffer 来讲一下相关知识&#xff0c;大概需要10分钟左右就可以读完本文。 什么是ArrayBuffer&#xff1f; 描述 ArrayBuffer 对象用…

Paramiko库讲解

目录 基本概念 Paramiko组件架构 Key handing类 Transport类 SFTPClient类 SSHClient类—主要使用的类 Python编写完整例子 基本概念 Paramiko是Python实现SSHv2协议的模块&#xff0c;支持口令认证和公钥认证两种方式 通过Paramiko可以实现通过Python进行安全的远程命…

Html5网页播放器的同层播放功能

Html5网页播放器的同层播放功能&#xff1a; 在Android手机上使用H5播放视频时&#xff0c;大多数的国内浏览器厂商都会在视频播放时劫持<video>标签&#xff0c;使用浏览器自带的播放器播放视频&#xff0c;而且播放器会处于最高层级&#xff0c;视频上面无法显示其它h…

数影周报:字节跳动员工违规获取TikTok用户数据,阿里组织调整

本周看点&#xff1a;字节跳动员工违规获取TikTok用户数据&#xff1b;钉钉宣布用户数破6 亿&#xff1b;阿里组织调整&#xff1b;星尘数据完成 5000 万元 A 轮融资...... 数据安全那些事 字节跳动员工违规获取TikTok用户数据 字节跳动旗下热门应用TikTok日前曝出严重风波。字…

郭德纲落选,冯巩、赵炎上榜,国家非物质文化遗产传承人评选落幕

根据国家广电局26日消息&#xff0c;经过激烈的竞争&#xff0c;国家非物质文化遗产传承人评选工作&#xff0c;已经顺利落下帷幕。 在此次评选活动当中&#xff0c;评委会一致审议通过&#xff0c;著名相声演员冯巩和赵炎&#xff0c;被评为了非物质文化遗产传承人。而呼声很高…

Linux | 进程理解 | 进程的终止,等待与替换 | 环境变量的介绍与使用

文章目录进程终止进程终止的方法操作系统是怎么终止进程的&#xff1f;进程等待为何需要等待进程&#xff1f;怎么等待一个进程&#xff1f;非阻塞式等待进程替换什么是进程替换&#xff1f;为什么要进程替换&#xff1f;怎样替换一个进程&#xff1f;exec系列函数环境变量用命…

企业微信开发(一)常见问题收集及解决方案

持续收集企业微信开发中遇到疑难杂症&#xff0c;并给出相应的解决方案 一、好友上限&#xff08;84061&#xff09; 背景&#xff1a;达到添加好友数上限的员工&#xff0c;新增自动通过的好友&#xff0c;无法拉取到客户信息。 根因&#xff1a;企业微信业务限制 员工添加的…

启辰全面转型新能源,能否创造风日产第二增长曲线?

随着新能源汽车市占率的不断增长&#xff0c;传统汽车大厂加大了在新能源汽车领域的布局。这其中决心最大的当属东风日产&#xff0c;第二品牌——“启辰”全面转型新能源&#xff0c;告别纯然有车开发。 12月30日&#xff0c;以“新科技 新生活”为主题的第二十届广州车展盛大…

Linux系统定时信号SIGALRM的触发与alarm函数的使用

1、 定时信号SIGALRM的用途 在编程的过程中&#xff0c;很多时候我们需要为程序设置一个闹钟&#xff0c;然后到了闹钟设定的时刻然后再去采取相关的操作。比如进行socket编程时&#xff0c;如果客户端长时间没有与服务器进行交互&#xff0c;需要服务器在一定时间之后主动关闭…

Linux | 权限管理

啊我摔倒了..有没有人扶我起来学习.... &#x1f471;个人主页&#xff1a;《CGod的个人主页》\color{Darkorange}{《CGod的个人主页》}《CGod的个人主页》交个朋友叭~ &#x1f492;个人社区&#xff1a;《编程成神技术交流社区》\color{Darkorange}{《编程成神技术交流社区》…

Vue(二)

1. 模板语法 1.1 实现效果 1.2 模板的理解 不加v-bind就相当于直接把双引号里的东西当成字符串执行&#xff0c;加了bind双引号里的东西就当成js表达式执行 v-bind:可以简写成&#xff1a; 起始标签和结束标签中间夹着的就是标签体 <!DOCTYPE html> <html><hea…

【数据结构】插入排序、希尔排序、冒泡排序、选择排序

文章目录 一、直接插入排序 思想 程序代码 时间复杂度 二、希尔排序 思想 程序代码 时间复杂度 三、冒泡排序 思想 程序代码 时间复杂度 四、选择排序 思想 程序代码 时间复杂度 一、直接插入排序 思想 直接插入排序有些类似于我们玩扑克牌时的整理牌序动作&a…

目标检测中常见的神经网络组成层------Pytorch

物体检测中常见的神经网络组成层 文章目录物体检测中常见的神经网络组成层卷积层激活函数层池化层Dropout层全连接层常见的物体检测算法常用卷积层、池化层、全连接层、激活函数层、Dropout层。 卷积层 CNN–各层的介绍_Miracle Fan的博客-CSDN博客_cnn各层介绍 在pytorch中…

Python3入门基础(08)一个函数

Python3 函数 函数是组织好的&#xff0c;可重复使用的&#xff0c;用来实现单一&#xff0c;或相关联功能的代码段。 函数能提高应用的模块性&#xff0c;和代码的重复利用率。你已经知道Python提供了许多内建函数&#xff0c;比如print()。但你也可以自己创建函数&#xff0…

Windows 11 连接 hercules zOS Websphere MQ 配置

基本配置 zOS v1.10 基本配置可以先参考下面教程 ubuntu 编译 hercules 主机安装 z/OS 教程 zOS MQ 版本为 CSQ700 Windows 11 IBM MQ 版本为最新 9.x IBM MQ 官网有开发者版本可以免费下载&#xff0c;档名如下 mqadv_dev931_windows.zip (全名为 IBM MQ Advanced for Devel…

kafka — 2、基础环境搭建

前述 kafka的运行依赖于zooKeeper&#xff0c;所以在搭建kafka的环境之前需要搭建zookeeper环境。 zooKeeper&#xff1a; ZooKeeper是一个分布式协调服务&#xff0c;它的主要作用是为分布式系统提供一致性服务&#xff0c;可以保证数据在集群间的事务一致性&#xff0c;提供…

Volatile不保证原子性

目录 前言 原子性 代码测试 为什么出现数值丢失 如何解决 其它解决方法 字节码指令表 前言 通过前面对JMM的介绍&#xff0c;我们知道&#xff0c;各个线程对主内存中共享变量的操作都是各个线程各自拷贝到自己的工作内存进行操作后在写回到主内存中的。 这就可能存在一…