码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【个人博客系统网站】项目的发布 · 通过公网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.1.2 端口号修改

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

    server.port=8888
    
    • 1

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

    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
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35

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

    1.2.2 必要目录

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

    在根目录/root:

    mkdir blog_userImage
    
    • 1
    1.2.3 spring boot相关项目整理在一个目录

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

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

    mkdir spring_project
    cd spring_project
    
    • 1
    • 2

    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 &
    
    
    • 1
    • 2
    1. & : 指在后台运行,我们还可以继续执行我们别的任务,即仍可继续输入命令去做别的事情,但是当用户退出(挂起)的时候,命令自动也跟着退出
    2. nohup : 不挂断的运行,注意并没有后台运行的功能,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思,&才是后台运行

    那么,我们可以巧妙的吧他们结合起来用就是
    nohup COMMAND &
    这样就能使命令永久的在后台执行

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

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

    并且,要再按一次回车

    ps -ef|grep java
    
    • 1

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

    在这里插入图片描述

    1. 停止
    kill -9 进程ID
    
    • 1

    1.6 访问地址测试功能

    在这里插入图片描述

    • 不保证我的网站可持续访问!

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

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

    2. 思考总结

    2.1 碎碎念

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

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

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

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

    最后,我们有一个升级,就是连接Redis,有了Redis之后,即使服务器重启,会话记录也会保存在Redi中!等我们接下来讲解完Redis的知识后,再回来继续! 😀

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


    文章到此结束!谢谢观看
    可以叫我 小马,我可能写的不好或者有错误,但是一起加油鸭🦆!
    网站源码(持续更新):myblog_system/src · 游离态/马拉圈2023年9月 - 码云 - 开源中国 (gitee.com)


  • 相关阅读:
    码蹄集 - MT2320 - 跑图:简单图问题
    JS中Promise详解
    工作流之activiti7学习进阶篇
    使用KiCad插件,将PCB焊接可视化
    本地开发好的 SAP UI5 应用部署到 ABAP 服务器时,中文字符变成乱码的原因分析和解决方案
    WPF中动画教程(DoubleAnimation的基本使用)
    网络编程:多进程实现TCP服务端并发、互斥锁代码实操、线程理论、创建线程的两种方式、线程的诸多特性、GIL全局解释器锁、验证GIL的存在
    数据源太多,报表工具该如何兼容?
    基于JAVASketch2Mod网站计算机毕业设计源码+系统+lw文档+部署
    [附源码]JAVA毕业设计仟侬堂茶具网站(系统+LW)
  • 原文地址:https://blog.csdn.net/Carefree_State/article/details/132697303
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号