blog博客系统开发记录(1)

如何开发一个系统 作为一名大二学生,参加校内比赛做了一个绩效管理系统,所以写一下如何开发一个系统。制作一个系统有三步,首先进行需求分析,其次进行系统设计,最后进行系统开发。前面的步骤做好以后,系统开发和进度规划方面就有了参考,不会在开发过程中感到迷茫。只有准确了解了用户需求,才能设计出一个实用的系统。如果只是让系统成为技术的载体,这个系统是称不上一个作品的,一定要完成某些能够称之为需求的任务,并且是准确完成用户需求才好。做一个简单的系统,可以直接询问你的用户,想要让系统完成什么事情。比如想做一个社区,为了让某个群体有交流的平 阅读详情

项目地址:arongblog—github


前言

一直想运用所学的知识搞个小博客玩玩,由于个人学习问题一直拖了很久,所以这段时间希望能使用SpringBoot写一个博客系统来玩一玩,当做是练练手,以后也可以在这个项目中补充一些新技术。


站在巨人的肩膀上创新

本想自己0开始,从前台敲到后台,但是发现这样会花费太多时间,所以在github上以“springboot博客”为关键词搜索一波,发现这位大神用springboot改写的博客项目
Blog,该项目是原型是十三大佬的My-Blog项目,并且去除了docker,简化了项目结构,然而当我在My-Blog里看README.MD时发现,原来这位大神也是fork了另一位大佬otale的项目tale,好吧,这样的项目虽然不大,但是一个人真的从0开始构建,会花费不少的精力,并且前台也不是java程序员的特长,所以,我们从Blog项目开始进行改造升级。

从git clone 开始旅程

首先将Blog项目clone下来,我在本地建立了一个仓库arongblog,用以存放修改后的代码,方便日后更新。
现在开始吧,git clone https://github.com/zhisheng17/blog.git,项目结构是这样的:
在这里插入图片描述

将原项目改为使用gradle构建

由于原项目是使用maven作为构建工具的,而gradle更符合springboot的开发特点,即更简约和少配置,这里使用的是idea的Spring Initializer创建springboot项目,项目初始化参数参考原项目中的pom.xml,这里只整合mybatis、thymeleaf及redis,后续的再依情况整合。
在这里插入图片描述
在这里插入图片描述

修改build.gradle,使用阿里云中央仓库

repositories {
		//mavenCentral()
        maven {
            url 'http://maven.aliyun.com/nexus/content/groups/public/'
        }
	}

补全项目结构

复制原项目的其他目录到新项目中,注意不能保留pom.xml,因为我们使用的是gradle构建
在这里插入图片描述

生成项目中所需表

在这里插入图片描述

修改build.gradle

根据项目所需,我为build.gradle增加了如下依赖

configurations {
	providedRuntime
	//remove default logger
	all*.exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
}


dependencies {
	// https://mvnrepository.com/artifact/com.alibaba/druid
	compile group: 'com.alibaba', name: 'druid', version: '1.1.11'

	// https://mvnrepository.com/artifact/org.aspectj/aspectjweaver
	compile group: 'org.aspectj', name: 'aspectjweaver', version: '1.9.1'

	// https://mvnrepository.com/artifact/com.google.code.gson/gson
	compile group: 'com.google.code.gson', name: 'gson', version: '2.8.5'

	// https://mvnrepository.com/artifact/com.vdurmont/emoji-java
	compile group: 'com.vdurmont', name: 'emoji-java', version: '4.0.0'

	// https://mvnrepository.com/artifact/com.atlassian.commonmark/commonmark
	compile group: 'com.atlassian.commonmark', name: 'commonmark', version: '0.11.0'

	// https://mvnrepository.com/artifact/org.apache.commons/commons-lang3
	compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.8.1'

	// https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter
	compile group: 'com.github.pagehelper', name: 'pagehelper-spring-boot-starter', version: '1.2.7'

	compile('org.springframework.boot:spring-boot-starter-data-redis')
	compile('org.springframework.boot:spring-boot-starter-thymeleaf')
	// log4j2
	compile ("org.springframework.boot:spring-boot-starter-web") {
		exclude module: 'org.springframework.boot:spring-boot-starter-logging'
	}
	compile ('org.springframework.boot:spring-boot-starter-log4j2')
	compile('org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.2')
	runtime('mysql:mysql-connector-java')
	//providedRuntime('org.springframework.boot:spring-boot-starter-tomcat')
	testCompile('org.springframework.boot:spring-boot-starter-test')
}


//xml资源文件读取
sourceSets {
	main {
		resources {
			//可以将java目录下的所有非.java资源打包到classes下
			srcDirs = ['src/main/java', 'src/main/resources']
		}
	}
}

使用springboot内置的连接池

原项目使用的是阿里巴巴出品的druid连接池,这款连接池是目前java开发领域来说效率最高的,但是由于本项目是小型项目,不会有频繁的数据请求,所以使用springboot内置的 tomcat连接池即可
修改CoreApplication.java

//修改启动类,注释掉druid连接池的启动配置
   /* @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource dataSource() {
        return new DruidDataSource();
    }

    @Bean(initMethod = "init",autowire = "true")
    public SqlSessionFactory sqlSessionFactoryBean() throws Exception {
        PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
        sqlSessionFactoryBean.setDataSource(dataSource());
        sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath*:/mapper/*Mapper.xml"));
        return sqlSessionFactoryBean.getObject();
    }

    @Bean
    public PlatformTransactionManager transactionManager() {
        return new DataSourceTransactionManager(dataSource());
    }
*/

修改application.properties,注释掉连接池配置

# spring.datasource.type=com.alibaba.druid.pool.DruidDataSource


启动项目

更改完这些配置后,该maven项目已经被改造成为了gradle项目,如果没问题的话。启动后即可访问项目主页了
在这里插入图片描述

Java交流群【QQ】:在这里插入图片描述

有故事的程序员必看的六个开源博客系统 | Gitee项目推荐 程序员除了需要具备写代码的能力,还要有写作能力,项目开发过程中需要清晰的文字记录。发布开源项目,如果想让更多人使用或贡献代码,也必须有一份生动又明了的 Readme 文档。程序员很热衷通过博客写作,不仅能够分享开发经验,解决技术上的困惑,还能交到很多朋友。下面就推荐几个 Gitee 上的开源博客系统,希望有故事的程序员们能建立起自己的博客,与大家多多分享技术、分享生活。 1、项目名称:开源... 阅读详情

相关推荐

golang博客系统beego-blog编译及运行笔记

golang博客系统beego-blog的编译笔记-初学go入门篇

uxff的专栏 5491

系统开发完整流程--------整体介绍

为了保证我们开发的项目在上线之后能够完全满足要求,就需要把项目部署在真实的环境中, 测试一下是否完全符合要求啊,这时候就诞生了准生产环境,你可以把他当做生产环境的克隆体,准生产环境的服务器配置, 安装的应用软件(JDK、Tomcat、数据库、中间件 ...) 的版本都一样,这种环境也称为 "仿真环境"。产品原型,一般是通过网页(html)的形式展示当前的页面展示什么样的数据, 页面的布局是什么样子的,点击某个菜单,打开什么页面,点击某个按钮,出现什么效果,都可以通过产品原型看到。

qq_51764257的博客 2万+

Serverless 与 Flask 框架结合进行 Blog 开发

随着时间的发展,Serverless 架构越来越火热,其按量付费、弹性伸缩等诸多优质特性,让人眼前一亮,不得不惊叹云计算为我们带来的便利。 本实践通过一个博客系统的开发,和大家简单地体验一下基于 Serverless 架构的博客系统是什么样的。 开发前的思考 博客系统需要哪些功能?本文仅仅是 demo 性质,所以功能比较少,只有两个页面。具有文章管理、分类管理、标签管理以及留言管理等功能。同时为了方便用户管理,要有前台和后台两部分。 前台如何做?前台可能是用户流量比较大的(相对后台而言),所以这部分就是

腾讯云 Serverless 1203

个人博客项目开发总结(一) 项目架构及后端开发

个人博客项目开发总结(一) 项目架构及后端开发

这里是阿安的博客 8398

JSP博客系统开发实战指南:blog_jsp_v1.0

本文还有配套的精品资源,点击获取 简介:本项目通过详细的JSP博客系统开发,探讨了JSP技术在Web应用中的应用。涵盖了JSP页面的构成、生命周期、内置对象、表达式语言(EL)、标准标签库(JSTL)、MVC设计模式、数据库交互、用户认证与授权、错误处理与日志记录以及部署等关键技术点。本指南旨在帮助开发者掌握JSP技术,并构建一个高效、可维护的博客系统。 1. J...

weixin_42573757的博客 535

从入门到实战:rkhunter(Rootkit猎手)在Linux服务器安全运维中的部署与自动化监控

本文详细介绍了rkhunter(Rootkit猎手)在Linux服务器安全运维中的部署与自动化监控方法。从Rootkit的危害性入手,讲解了rkhunter的安装、配置及实战应用,包括如何建立基准、优化定时任务方案以及智能告警处理。通过多级过滤脚本和系统级联动,帮助运维人员高效识别和应对Rootkit威胁,提升服务器安全性。

weixin_28715953的博客 242

软件设计师——系统基础开发

可行性分析与项目开发计划需求分析概要设计详细设计编码测试维护系统设计分为概要设计和详细设计概要设计:设计软件系统总体结构数据结构及数据库设计概念设计逻辑设计物理设计编写概要设计文档评审详细设计:对每个模块进行详细的算法设计​。

2302_80262940的博客 2324

S7-200 SMART Modbus RTU从站配置与调试实战指南

本文提供了一份详细的S7-200 SMART PLC配置为Modbus RTU从站的实战指南。内容涵盖从硬件基础、软件准备、指令库调用、核心编程到地址映射与调试排错的完整流程。重点解析了MBUS_INIT与MBUS_SLAVE指令的关键参数配置,并深入探讨了Modbus地址与PLC内部V存储区的对应关系,帮助工程师快速打通通讯链路,实现与上位机、触摸屏等主站设备的稳定数据交互。

potato的博客 756

不会前端,怎么快速打造属于自己的个人博客?

不怎么会前端,又想搞一个自己的个人博客怎么办?本文就教你用vuepress 2.0 怎么快速搭建一个博客,而且还包含浏览量统计,不需要第三方的服务哦

共勉 2110

【origin】负载牵引的Smith圆图

export导出为txt,得到的是幅相值,复制到excel如下图,有多根类似格式的线,只需要复制DE列到origin中。回到sheet,发现新增了选中的一组值,就是解释过后的值。笔者没找到把所有线一起画出的方法,只能蠢一点,一组一组画。而且,箭头所指的位置都变成了Y轴(应该要为X轴)以此类推,把之后的曲线都画完,可以汇总到一个图中。显示以下界面,点击右上圆图,选择解释。会生成新的graph,再重新解释一次。选择第二组线,同样画smith圆图。选中第一组线,选smith圆图。复制到origin,如下图。

乾巽的博客 2922

车载智能终端的设计

本文研究的主要内容是车载智能终端的设计,在学习和借鉴国内外在车载电子领域已有的成熟经验的基础上,利用32位嵌入式处理器S344B0X01和μC/OS-Ⅱ实时操作系统技术,针对汽车行驶记录仪、GPS/GPRS的已有设计的不足提出了新的解决方案,并对方案的可行性进行了分析和论证。

weixin_44553616的博客 1415

勾股BLOG:基于ThinkPHP与Layui的轻量级博客系统构建与应用

随着互联网技术的飞速发展,个人博客作为知识分享、技术交流与个人品牌建设的重要平台,其重要性日益凸显。本文介绍了一款名为“勾股BLOG”的轻量级博客系统,该系统采用ThinkPHP6框架与Layui前端UI框架,结合MySql数据库构建而成。勾股BLOG不仅提供了基础的博客文章管理功能,还集成了用户管理、访问统计、微博式动态分享及阿里语雀风格的文档管理等功能,旨在为用户提供一个简单、高效、易扩展的博客平台。本文将从项目背景、框架介绍、功能矩阵、应用场景及使用案例等方面进行详细阐述。

chenchuang0128的博客 734

OpenClaw本地部署教程

本文详细介绍了在Windows 11系统上部署OpenClaw与Ollama本地模型的完整流程。主要内容包括:硬件要求说明、Node.js环境配置、Ollama模型安装与定制(重点扩展上下文窗口至32768 tokens)、OpenClaw核心框架安装与对接、常见问题解决(如模型上下文窗口过小报错)以及可选技能扩展和飞书接入方案。部署全程约需1-2小时,强调使用备用设备或虚拟机以确保安全,并提供关键配置参数和排错命令。该方案实现了"数据不出门、推理本地化"的私有化部署目标。

技术引领业务创新 2585

react-blog-github核心功能解析:为什么它是开发者的理想博客系统

react-blog-github是一个基于React和GitHub Issues构建的个人博客系统,它将现代前端框架的优势与GitHub平台的便捷性完美结合,为开发者提供了一个简单高效的博客解决方案。无需复杂的后端配置,只需利用GitHub Issues作为内容管理系统,即可快速搭建属于自己的专业博客。 ## 为什么选择react-blog-github作为开发者博客? 对于开发者而言,选择

gitblog_00909的博客 332

python刷B站播放量

首先,我们要知道B站播放量计算方法:不同的IP只能算一次,如果点一下就关掉,会出现播放完成度很低的情况,反而不利。 所以我们要做的是:不停换IP地址打开视频播放页,最好能看完视频。 下面是实现方法: 获取某一个网页上的所有代理IP,返回一个IP列表: def get_ip_list(url, headers): web_data = requests.get(url, headers=headers) soup = BeautifulSoup(web_data.text, 'lxml

HGGshiwo的博客 1万+

GFPS技术原理(一)-简介

GFPS(谷歌快速配对服务)利用BLE技术简化设备配对流程,相比传统方式大幅提升用户体验。首次配对时,设备广播包含型号ID和安全密钥的BLE信号,手机检测后弹出配对通知,用户点击即可完成安全连接并将设备与Google账户绑定。该技术支持跨设备同步、电量显示、找回设备等功能,后续配对更加便捷。GFPS通过BLE实现快速发现、一键配对和安全连接,结合Google后端服务提供元数据支持,已成为出海设备的认证标准。其核心优势在于简化操作步骤并增强功能性,特别适合非技术用户群体。

十多年蓝牙协议软件开发,擅长蓝牙协议分析 2062

Spring Boot个人博客FS-Blog:从零开始构建你的第一个博客系统

FS-Blog是一个基于Spring Boot和MyBatis构建的轻量级个人博客系统,特别适合程序员快速搭建属于自己的技术博客。它集成了Markdown编辑器、标签分类检索等实用功能,采用Bootstrap和LayUI作为前端框架,既美观又易于使用。 ## 🚀 为什么选择FS-Blog? 对于刚接触Web开发的新手来说,从零构建一个功能完整的博客系统可能会感到困难重重。FS-Blog作为S

gitblog_00418的博客 356

uniapp APP端:蓝牙报错writeBLECharacteristicValue:fail property not support(uni.writeBLECharacteristicVal)

uni-app 蓝牙fail property not support、发现不了服务特征值的问题、突然发现微信蓝牙小秘密,使用uni-app编译成安卓APP后报错writeBLECharacteristicValue:fail property not support,发现不了服务特征值,uniApp APP调用蓝牙API发送指令过快导致,uniapp 蓝牙 writeBLECharacteristicValue property_not_support iOS Android BLE GATT 特征值写入

✅ 精选推荐文章 2944

N-blog:基于Node.js和MongoDB的现代化博客系统深度解析

N-blog:基于Node.js和MongoDB的现代化博客系统深度解析 N-blog是一个基于Node.js和MongoDB构建的现代化多人博客系统,采用Express框架开发完整的后端服务应用。该项目不仅具备用户管理、文章管理、评论系统、权限控制、文件上传和错误处理等核心功能,还展示了典型的三层架构设计和模块化组织方式。技术栈包括EJS模板引擎、Mongolass ORM、Session管理等...

gitblog_00031的博客 615

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

开源博客建站系统勾股BLOG

勾股BLOG是一款轻量级但功能完备的博客平台,由勾股开源团队开发并维护,遵循Apache2开源协议,用户可以自由使用、修改和分发而无需担心版权限制。该系统最初是开发者为了整理技术、分享知识和记录生活而创建,后来开源供更多有相同需求的程序员使用。个人技术博客:用于记录和分享技术经验工作室官网:展示工作室作品和服务自媒体平台:发布专业领域内容知识管理:类似阿里语雀的文档归类功能小说网站:经过二次开发可作为连载平台简单易用:界面直观,操作简便,降低使用门槛功能全面。

xuweilin的博客 1207

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

记录自己用python搭建个人博客系统的完整过程(二)

本篇博文是上篇博文的续篇,上篇博文链接如下: 记录自己用python搭建个人博客系统的完整过程(一) 先回顾一下上篇博文中完成的任务: 创建VPS,安装Centos7 x64位系统 注册域名并和VPS的ip地址做映射 安装python3.6.6 安装nginx服务和mysql服务 创建Blog的虚拟环境 在虚拟环境中创建myblog项目 在虚拟环境中安装uwsgi服务 在虚拟环境中安装Djang...

blackeagleoht的博客 6446

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

blog45/blog API接口全解析:开发者必备参考手册

blog45/blog是一个基于Go、Echo、XORM、Vue和TypeScript开发的高性能前后端分离个人博客系统。这个开源项目提供了完善的API接口,让开发者可以轻松进行二次开发,构建功能丰富的博客平台或内容管理系统。本指南将深入解析blog45/blog的核心API接口,帮助开发者快速上手并充分利用这一强大的开发框架。 ## 🚀 API接口架构概览 blog45/blog采用前后端

gitblog_00618的博客 992

Docker实践:使用Docker部署blog轻量级博客系统

Docker实践:使用Docker部署blog轻量级博客系统

jks212454的博客 1642

国内Asp.net博客系统收集和简单介绍

[转载文章,仅供个人参考,引自http://www.soyaoo.com/Blog/post/92.html]1.ZJ-Blog程序简介:基于ASP.net 1.1环境开发的单用户博客程序,支持Access和MySQL两种数据库,其最大的特点是采用.net开发并大量的使用了Ajax技术,本人还没用使用过此程序但是直觉上觉得大量应用Ajax也未必是一件好事,个人觉得给用户适当的体验或许更能引起用户的兴趣。当然用户其实最关心的并非是这些技术问题,而是程序的功能与界面以及安装运行环境。当然使用微软力推的.net环

$(this).attr("writter","mxd"); 2400

SpringBoot+Vue 博客系统(七):Blog前端Vue项目的搭建

以上记录了前端Vue项目的从0开始搭建过程、包括安装node.js坏境、安装vue cli 、初始化项目、然后提交代码到码云。如果对你有所帮助,请一键三连。

YangCunle的博客 542

Zabbix 监控 Mikrotik CRS125-24G-1S-2HnD-IN:社区 SNMP 模板的指标采集、LLD 发现与告警配置全解析

本篇指南以 Zabbix 社区模板仓库(community-templates)中面向 Mikrotik CRS125-24G-1S-2HnD-IN 交换机的官方社区模板为核心,系统讲解其 SNMP 采集体系:涵盖可用性探测、系统信息、温度/电压、DHCP 租约与无线客户端等固定指标,以及处理器、接口、磁盘分区三条低级别发现(LLD)规则。读完本文,你将掌握该模板的导入方式、宏调优方法、每个监控项

gitblog_00969的博客 488
上一篇: SpringBoot学习笔记(12)-配置UTF-8字符集
下一篇: MySQL基础笔记(9)-在Ubuntu中安装MySQL数据库
BoringRong
BoringRong 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 2万+粉丝 386原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BoringRong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值