当前位置: 首页 > news >正文

【个人博客系统网站】项目的发布 · 通过公网IP访问我们的网站 · 思考总结

【JavaEE】进阶 · 个人博客系统(6)

在这里插入图片描述

文章目录

  • 【JavaEE】进阶 · 个人博客系统(6)
    • 1. 项目发布
      • 1.1 后端代码修改
        • 1.1.1 数据库密码
        • 1.1.2 端口号修改
        • 1.1.3 文件保存地址修改
        • 1.1.4 静态资源映射修改
      • 1.2 云服务器
        • 1.2.1 建库建表
        • 1.2.2 必要目录
        • 1.2.3 spring boot相关项目整理在一个目录
      • 1.3 打jar包并部署
      • 1.4 服务器安全组,放开对应端口
      • 1.5 项目的启动和停止
      • 1.6 访问地址测试功能
        • 我的博客系统
    • 2. 思考总结
      • 2.1 碎碎念
      • 2.2 项目亮点就是我们项目的大升级

【JavaEE】进阶 · 个人博客系统(6)

1. 项目发布

环境搭建参考:

【JavaEE】项目的部署-让网络上的人都能访问你的网站_s:103的博客-CSDN博客

  1. 数据库
  2. jdk
  3. tomcat不需要,因为我们项目内置了!

1.1 后端代码修改

1.1.1 数据库密码

我这里为空,因为我在云服务器里是没有密码的

spring.datasource.password=

1.1.2 端口号修改

设置应该你云服务器空闲的端口

server.port=8888

数据库端口被占用,或者链接非本地的数据库的话,自行修改~

1.1.3 文件保存地址修改

在这里插入图片描述

在这里插入图片描述

1.1.4 静态资源映射修改

在这里插入图片描述

1.2 云服务器

1.2.1 建库建表

值得注意的是:云服务器数据库版本可能比较低,没法让两个timestamp同时default,并且datetime也无法设置默认为当前时间,而用数据库默认的值,会导致程序出错:

所以我选择,创建时用timestamp,默认为此时;更新时间用datetime,默认为NULL

  • 这样创建时能记录创建时间,未更新则为NULL,后期更新的时候再设置值,这样也逻辑合理了(为NULL代表从未更新过,不为NULL则代表最后一次更新的时间)
-- 创建数据库drop database if exists myblog_system;
create database myblog_system charset=utf8;-- 使用数据数据use myblog_system;-- 创建表[用户表]drop table if exists  userinfo;
create table userinfo(id int primary key auto_increment,username varchar(15) not null unique,name varchar(100) not null,password varchar(65) not null,photo varchar(500) default '',git varchar(500) default '',createtime TIMESTAMP default CURRENT_TIMESTAMP,updatetime datetime default NULL,`state` int default 1
);-- 创建文章表drop table if exists  articleinfo;
create table articleinfo(id int primary key auto_increment,title varchar(100) not null,content text not null,summary text not null,createtime TIMESTAMP default current_timestamp,updatetime datetime default NULL,uid int not null,photo varchar(500) default '',rcount int not null default 1,`state` int default 1
);

直接在云服务器里创建即可~

1.2.2 必要目录

我们目前的一个必要目录是blog_userImage:用于保存用户文件

在根目录/root:

mkdir blog_userImage

1.2.3 spring boot相关项目整理在一个目录

这个非必要,因为你的项目放哪都行,只需要保证执行的时候,语句能够访问到jar包即可

而我是放在根目录的spring_project目录下:

mkdir spring_project
cd spring_project

1.3 打jar包并部署

在这里插入图片描述

等一段时间后:

在这里插入图片描述

文件管理器打开:

在这里插入图片描述

直接拖动到云服务器当前目录下,自动下载:

在这里插入图片描述

下面那个目录是启动之后才有的

1.4 服务器安全组,放开对应端口

由于ip是公开的,而端口号如果全部分开的话,所有人能够应用我们的所有程序,这是不合理的,例如数据库,直接通过3306端口,想干嘛就干嘛,很恐怖!

注意:安全组id要跟我们的ip对应得上,而不是简简单单的创建一个安全组,这样它不知道这个安全组是作用到哪个机器上的

在这里插入图片描述


在这里插入图片描述


在这里插入图片描述

  • 放开你自己的哦

如果端口号是8888,出现fiddler关闭后,浏览器访问不了的问题,参考此博客:

fiddler关闭后浏览器网页打不开解决办法关闭fiddler后打不开网页_有点小糊涂哦的博客-CSDN博客

1.5 项目的启动和停止

  1. 启动
nohup java -jar demo-0.0.1-SNAPSHOT.jar &

这里要保证jar包名要访问得上!

  • 结尾的 & 符号表示项目启动后在后台运行,不会随着你关闭 xshell 而结束

并且,要再按一次回车

ps -ef|grep java

查看进程信息,目前可见进程id为14980

在这里插入图片描述

  1. 停止
kill -9 进程ID

1.6 访问地址测试功能

在这里插入图片描述

我试过了,功能都没问题,接下来就交给你来测试了😀:

我的博客系统

  • 注册的时候图片空间太大上传不了,这是通病,没办法~

目前功能就这么多,后续更新功能,可以私信我建议哦!

2. 思考总结

2.1 碎碎念

项目开发就差不多这样,“有想法” + “合理分析” + “实践实现”;“发现问题” + “冷静地多方面分析” + “解决问题”,至于后期发现一些缺漏或者添加需要一些细节/功能,后面发现再定期对网站进行维护更新! 😀

更新服务器最好将target更新一下,并且问题积累下来,一段时间再一起更新,就像一些网站/游戏定期维护那样

2.2 项目亮点就是我们项目的大升级

  1. 框架升级为Spring全家桶和MyBatis
  2. 应用多线程开发
  3. 注册上传头像功能
  4. 分页功能的实现
  5. 使用自己写的更加安全的加盐加密算法
  6. 用到了AOP编程:统一处理与拦截器

最后,我们有一个升级,就是连接Redis,等我们接下来讲解完Redis的知识后,再回来继续! 😀

欲知后事如何,且听下回分解

文章到此结束!谢谢观看
可以叫我 小马,我可能写的不好或者有错误,但是一起加油鸭🦆


网站:我的博客系统

网站源码(持续更新):myblog_system/src · 游离态/马拉圈2023年9月 - 码云 - 开源中国 (gitee.com)


相关文章:

【个人博客系统网站】项目的发布 · 通过公网IP访问我们的网站 · 思考总结

【JavaEE】进阶 个人博客系统(6) 文章目录 【JavaEE】进阶 个人博客系统(6)1. 项目发布1.1 后端代码修改1.1.1 数据库密码1.1.2 端口号修改1.1.3 文件保存地址修改1.1.4 静态资源映射修改 1.2 云服务器1.2.1 建库建表1.2.2 必要…...

网络类型(通信分类)

网络类型是根据数据链路层所使用的协议及规则进行划分,大致可分为两类网络: 点到点(p2p,point to point)MA(multiple access)多路访问:BMA、NBMA 不同的网络类型实际为不同的数据链…...

python基础语法(一)

目录 常量和表达式变量和类型变量是什么变量的语法定义变量使用变量 变量的类型整形浮点数(小数)字符串布尔其他 变量为什么会有这么多类型动态类型特征 常量和表达式 python中有许多和C语言相同的知识,但是也有一些不同的知识,比如: print(1 2 - 3)打印12-3的结果 print(1 …...

C语言学习笔记——常见问题

VS执行结果一闪而过 生成的 *.exe 文件打开时会一闪而过,从而观察不到其运行的结果————这是因为 main() 函数结束时,DOS 窗口会自动关闭 1、通过改变设置来解决 按以下顺序打开配通过改变设置来置窗口:项目->属性->配置属性->…...

使用GPU虚拟化技术搭建支持3D设计的职校学生机房(云教室)

背景 学校为职业学校,计算机教室需要进行Maya、Adobe Illustrator、Adobe Dreamweaver、Adobe PhotoShop等软件的教学。每个教室为35用户。资源需求为4核、8G内存、80G硬盘。 基于桌面虚拟化VDI技术的机房在成本、可管理性方面,相对于传统胖终端的机房…...

【C++入门】C语言的不足之处

概要 C入门主要讲的是C语言的一些不足,C作为补充,来补充C的不足之处 C的关键字有63个,C语言有32个(作为了解,不需要专门记) 变量的命名规则: 变量名必须以字母或下划线开头。变量名只能包含字…...

【已解决】oracle获取最近2学年的数据

已解决 :oracle获取最近2学年的数据 SELECT * FROM (SELECT * FROM xx.JWXT_XSKB WHERE AND xn IN (‘2023-2024’,‘2022-2023’)); 问题 某某系统课表数据过大,要求只获取最近2学年的数据,不能写死。 思路 mysql 在子查询的WHERE子句中…...

【图卷积神经网络】1-入门篇:为什么使用图神经网络(下)

为什么使用图神经网络? 在本书中,我们将重点介绍图学习技术中的深度学习家族,通常称为图神经网络。GNNs是一种新的深度学习架构类别,专门设计用于处理图结构化数据。与主要用于文本和图像的传统深度学习算法不同,GNNs明确地用于处理和分析图数据集(见图1.4)。 图1.4 - …...

AIGC(生成式AI)试用 2 -- 胡言乱语

小时候曾希望做个科学家,才师笑着说:努力、加油,一定会实现的。 也曾说要做个发明家,家人一笑了之:你那笨手笨脚的,想啥呢。 也曾幻想自己要成为英雄,被朋友嘲笑:连架都不敢…...

爬虫逆向实战(30)-某查查股东关联公司(HmacSHA512)

一、数据接口分析 主页地址:某查查 1、抓包 通过抓包可以发现数据接口是api/people/getRelatCompany 2、判断是否有加密参数 请求参数是否加密? 无 请求头是否加密? 通过查看“标头”可以发现,请求头中有一个key和value都是…...

多态(个人学习笔记黑马学习)

多态分为两类 静态多态: 函数重载和 运算符重载属于静态多态,复用函数名动态多态: 派生类和虚图数实现运行时多态 静态多态和动态多态区别: 静态多态的函数地址早绑定 编译阶段确定函数地址动态多态的函数地址晚绑定 运行阶段确定函数地址 1、基本语法 #include &…...

线程中future/atomic/async及nlohmann json的学习

1)std::future的其他成员函数 wait_for()成员函数&#xff0c;wait_for返回的是一个std::future_status枚举类型,根据返回值做相应处理 std::future_status state result.wait_for(std::chrono::seconds(1)); if(state std::future_status::ready) { cout<<result.get…...

windows安装MongoDB后进入命令交互界面失败解决方案

MongoDB下载链接&#xff1a;https://www.mongodb.com/download-center MongoDB安装教程&#xff1a;https://juejin.cn/post/6844903912000978952 不要安装最新的高版本MongoDB&#xff0c;因为配置方法可能会有差别&#xff0c;比如7.0一直失败的话就换5.0及以下版本试试&am…...

基于Java+SpringBoot+Vue前后端分离高校专业实习管理系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…...

E. Hanging Hearts

Problem - E - Codeforces 思路&#xff1a;我们考虑用树形dp&#xff0c;用f[i][0]表示以i为根&#xff0c;并且当前节点不在最长上升子序列中&#xff0c;用f[i][1]表示以i为根&#xff0c;当前节点在最长上升子序列中&#xff0c;那么f[i][0]max(f[j][0],f[j][1])&#xff0…...

docker安装RabbitMQ教程

可以通过Docker来安装RabbitMQ&#xff0c;具体步骤如下&#xff1a; 安装Docker&#xff1a;请参考官方文档进行安装。 拉取RabbitMQ镜像&#xff1a;通过以下命令拉取最新版本的RabbitMQ镜像。 docker pull rabbitmq:latest运行RabbitMQ容器&#xff1a;通过以下命令运行Rab…...

Java虚拟机整型数加载指令学习

JVM中 int 类型数值&#xff0c;根据 取值范围将 入栈的 字节码指令 就分为4类&#xff1a; 取值 -1~5 采用 iconst 指令&#xff1b; 取值 -128~127 采用 bipush 指令&#xff1b; 取值 -32768~32767 采用 sipush指令&#xff1b; 取值 -2147483648~2147483647 采用 ldc 指令。…...

Docker 实现 MySQL 一主一从配置

1、新建主服务器容器实例&#xff0c;端口&#xff1a; 3307 docker run \ -p 3307:3306 \ --name mysql-master \ -v /var/docker/mysql-master/log:/var/log/mysql \ -v /var/docker/mysql-master/data:/var/lib/mysql \ -v /var/docker/mysql-master/conf:/etc/mysql \ --p…...

Python编程练习与解答 练习113:避免重复

本练习将创建一个程序&#xff0c;从用户处读取单词&#xff0c;直到用户输入空行&#xff0c;在用户输入空行之后&#xff0c;程序应该显示一次用户输入的每个单词。单词应该按照他们最初的输入顺序显示。例如如果用户输入&#xff1a; first second first third second …...

线上 udp 客户端请求服务端客户端句柄泄漏问题

本题分别从如下三个方面来分享&#xff1a; 问题描述 自定义连接池的编写 common_pool 的使用 问题描述 线上有一个业务&#xff0c;某个通服务通知 udp 客户端通过向 udp 服务端&#xff08;某个硬件设备&#xff09;发送 udp 包来进行用户上线操作 当同时有大量的请求打到…...

vue3-count-to避坑指南:数字增长动画的7个常见问题与解决方案

Vue3-Count-To深度避坑实战&#xff1a;数字动画7大疑难解析 数字动态增长效果在数据可视化、金融仪表盘和运营数据展示中扮演着关键角色。vue3-count-to作为Vue3生态中专精于此的轻量级库&#xff0c;虽然API简洁&#xff0c;但在真实业务场景中往往会遇到各种边界情况。本文将…...

Java 设计模式・策略模式篇:从思想到代码实现

一、行为型模式 在面向对象的世界里&#xff0c;如何优雅地组织对象间的交互、分配职责&#xff0c;是每一位开发者都会反复思考的问题。直接硬编码交互逻辑固然简单&#xff0c;但当业务复杂度上升、对象协作关系变得错综复杂时&#xff0c;这种方式就会让代码变得僵化、难以…...

C# : 引用类型都存在堆上吗

不完全是&#xff0c;这里要精确区分&#xff1a;引用类型的实例大多数存在堆上&#xff0c;但引用本身不一定在堆上。我们拆开来说&#xff1a;引用类型本身 vs 引用变量对象实例&#xff08;类的实例&#xff09;绝大多数情况下分配在 堆上由 垃圾回收器 管理生命周期引用变量…...

OpenClaw极简部署:Qwen3-VL:30B镜像+飞书5分钟接入

OpenClaw极简部署&#xff1a;Qwen3-VL:30B镜像飞书5分钟接入 1. 为什么选择这个组合&#xff1f; 上周我在测试各种开源模型与自动化工具的搭配方案时&#xff0c;发现了一个效率极高的组合&#xff1a;星图平台的Qwen3-VL:30B镜像OpenClaw框架。这个方案最吸引我的地方在于…...

工业质检避坑指南:手把手教你根据数据成本选择异常检测模型(RGB/PCD/多模态实战)

工业质检实战&#xff1a;如何基于数据成本选择最优异常检测方案 在工业质检领域&#xff0c;算法工程师常面临一个现实困境&#xff1a;实验室里刷榜的模型往往需要昂贵的数据采集设备&#xff0c;而工厂产线上可能只有最基础的RGB相机。我曾参与过多个工业质检项目&#xff0…...

避开这些坑!群晖+acme.sh申请Let’s Encrypt证书的完整指南

群晖NAS上零踩坑申请Lets Encrypt证书的终极实践手册 每次看到浏览器地址栏那个刺眼的"不安全"提示就浑身难受&#xff1f;作为群晖深度用户&#xff0c;我花了三个周末时间踩遍了所有证书申请的坑。从idn指令缺失到nss验证失败&#xff0c;从API调用超时到证书自动更…...

ai辅助stm32开发,向快马描述需求即可获得精准的f103c8t6引脚配置代码

最近在做一个基于STM32F103C8T6的小项目&#xff0c;需要用到UART、I2C、PWM、ADC和GPIO等多种外设。作为嵌入式开发新手&#xff0c;最头疼的就是引脚分配和初始化代码的编写。好在发现了InsCode(快马)平台的AI辅助开发功能&#xff0c;用自然语言描述需求就能得到专业的代码解…...

python-flask-djangol框架的膳食营养食谱管理系统

目录需求分析技术选型数据库设计核心功能实现界面设计测试与部署维护与扩展项目技术支持源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作需求分析 膳食营养食谱管理系统需要具备用户管理、食谱管理、营养分析、购物清单生成等功能。系统应支…...

轨迹规划实战:用多项式插值+粒子群玩转机械臂运动优化

轨迹规划 路径规划 matlab 353多项式插值 基于改进粒子群算法 时间最优 针对六自由度 四自由度都可以&#xff0c;轨迹规划&#xff0c;多项式插值&#xff0c;更改轨迹点位置就可以搞机器人轨迹规划最头疼的就是既要轨迹丝滑又要时间最短。今天咱们用Matlab整点狠活—…...

从零开始:如何用开源方案打造你的第一台六足机器人

从零开始&#xff1a;如何用开源方案打造你的第一台六足机器人 【免费下载链接】hexapod 项目地址: https://gitcode.com/gh_mirrors/hexapod5/hexapod 想要亲手制作一台能够自如行走的六足机器人吗&#xff1f;hexapod开源项目为你提供了一套完整的免费解决方案&#…...