nginx安装教程

1. 介绍

1.1. 什么是nginx

Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,

并且cpu、内存等资源消耗却非常低,运行非常稳定。

阅读更多

PostgreSQL备份与恢复

1. 前言

数据库的备份有多种分类方式。

  1. 按照备份后的文件类型,可以分为物理备份(文件系统级别的备份)和逻辑备份(备份后的文件是sql文件或特定格式的导出文件);
  2. 按照备份过程中是否停止数据库服务,可分为冷备份(备份过程中停止数据库服务)和热备份(备份过程中数据库服务开启并可供用户访问);
  3. 按照备份是否是完整的数据库,可分为全量备份(备份是完整的数据库)和增量备份(备份是上一次全量备份后数据库改变的内容)。

Postgresql的常见备份方式有以下三种:文件系统级别的冷备份, SQL转储, 连续归档.

阅读更多

GitLab集成PlantUML

1. 摘要

本文提供了将PlantUML与GitLab集成的逐步指南。它涵盖了从配置PlantUML服务器到在GitLab中启用它的所有内容,并包括代码块以说明必要的命令。通过遵循本指南,您将能够使用PlantUML在GitLab snips、wikis和代码库中创建图表。

阅读更多

自己动手写一个Mysql到PostgreSQL数据库迁移工具

1. 前言

这段时间在进行 Mysql 到 PostgreSQL 数据库迁移工作.

主要包含三部分工作, 其一是构建数据库对象, 包括表, 视图, 存储过程的构建, 这部分由于我在项目早期就引入了 liquibase, 所以迁移工作很简单, 所以没有总结文章.

其二是代码修改, 让代码适配新的数据库, 这部分已经总结发布到了鹏叔的技术博客 - 从 Mariadb 迁移到 postgresql.

其三是数据迁移, 数据迁移也有一些现成的工具, 但是配置起来比较麻烦, 工具比想象中的复杂太多, 用起来也不是太顺手, 与其花时间在熟悉一次性的工具上, 不如自己写一个迁移工具. 于是就有了这篇文章.

阅读更多

使用stomp实现服务器端向web客户端推送数据

1. 前言

在上篇文章java实现websocket的五种方式, 我详细讲述了使用java实现websocket的五种方式.
五种方式都集中在服务器端的实现, 客户端我们使用的是一个在线测试工具进行测试的. 只有针对stomp这种方式我自己写了一个javascript版本的客户端. 但是随着项目的推进, 发现整个体系就像魔方或拼图一样, 在完整体系中还缺少了一块, 那就是java客户端去连接stomp websocket服务. 其作用是,在服务器端主动向客户端发送消息时, 通过stomp客户端连接stomp websocket服务, 将消息发布到某个topic, 最终被订阅消息的前端页面接收到. 三者之间的关系 java client -> stomp websocket服务 -> 前端页面. 采用的是消息订阅模式, 消息订阅并不是pull, 实际是push.

阅读更多

Win11怎么把软件添加到开机自启动中

1. 前言

把程序设置为开机自启或取消一些开机自选项, 对我个人来说是一个很重要的功能, 因为它能提高我的专注力. 很多时候, 我们容易被一些琐碎的事情给诱惑.
不知道大家有没有仔细观察或回味自己使用电脑的习惯.

根据我以前的经验, 按下开机键后, 经过一个不算漫长的等待, 真正进入 windows 界面后, 我们往往会短暂的忘记或刻意的不想把注意力集中到我们开机前想干的事情上.

开机后往往第一件事查看一下邮件, 检查一下聊天软件上的, 看看今天都发生了哪些新闻. 等这些事情完成后, 才会或者才可能想起我们开机前想要干的事情.
如果这段时间中再弹个窗, 提示软件需要杀毒, 升级某娱乐明星又爆出了什么大瓜, 某电视剧又更新到多少级了, 一断被这些信息给吸引了, 对于自制力不强的人们来说,今天这一天可能就尽是去打蚊子拍苍蝇去了, 一天又荒废了.

而将重要的应用程序放置在开机启动项,并在开机后直接弹出应用界面,可以让我们立即专注到重要事情,并有效缓解注意力被分散的状况。

而此时有一个干净高效的自启动项设置, 往往有助于屏蔽这些干扰, 或提醒自己该干正事了.

阅读更多

如何通过表名获取所有字段信息

1. 前言

通常情况下, 如果想写一些比较通用的应用程序, 我们需要通过表名去了解整个表的情况, 才能编写一些比较通用的数据库工具.
通过表名获取字段名有多种方式:

  • 第一种 我们可以查询系统表或者数据字典来获取表的信息, 其优点是效率比较高, 缺点是所写的工具往往只适用与某种特定的数据库.

  • 第二种 通过一些标准的数据库连接库获取数据库元数据, 从而获取到相应表的结构信息, 这样做的优点是由于程序是面向标准库的API,
    无论底层是何种数据库都能够兼容. 在Java领域可以通过Jdbc库提供的接口获取表信息, 在.net领域可以通过odbc, PHP领域可以使用PDO,
    SQLAPI ++ 之于C++, database/sql之于golang, sqlx之于Rust等等

本文主要介绍使用jdbc获取数据库字段信息.

阅读更多

java实现websocket的五种方式

1. 前言

WebSocket 是 HTML5 一种新的协议。它实现了浏览器与服务器全双工通信,能更好的节省服务器资源和带宽并达到实时通讯,它建立在 TCP 之上.

本文主要讲述在Java技术领域实现websocket服务的五种方式.

阅读更多

使用Gradle整合angular和Spring boot

1. 前言

本文讲述如何使用 Gradle 搭建一个以 springboot 技术栈作为后端, 使用 Angular 作为前端技术栈, 同过 gradle 将其整合成一个项目的实践经验.

这里只是作为一种实践, 并不建议在生产环境中将前后端耦合在一起. 本文的目的是拓展 Spring 在(SPA)Single page Application 一种能力, 即将实现项目依赖关系, 测试,打包等等自动化.

实现思路就是通过 Gradle task 触发 npm build, 将编译后的静态资源文件, 部署到 springboot 的静态资源文件目录, 然后沿用后端打包过程, 将前后端应用程序整合在一起.

阅读更多

Cmder安装与配置

1. 前言

相信很多开发者都在寻找一款在Windows下理想的命令行工具, 因为Windows10包括10之前自带的命令行工具真的是弱爆了, 而且它20多年都不曾经发生过太大的改变. 这种状况在应用软件快速发展的时代对很多人来说是不能忍受的, 即使在Windows 11中自带了一个叫terminal的工具, 虽然很强大但是我仍然没有打算使用它, 请容许我大胆的臆测一下它, 可能是因为WSL推出后微软实在觉得之前命令行工具太过简陋, 然后推出了Windows Powershell, 但是powershell还是难堪大任, 于是模仿市面上流行的终端推出了, terminal这样一款命令行工具. 至于之后会不会跟CMD一样数十年不再改进? 需要打一个大大的问号.

阅读更多

如何手动创建一个springBoot项目

1. 介绍

在本文中,您将学习如何创建一个简单的Spring Boot应用程序,以及您需要哪些依赖项和技术需要了解。
此外,我们将更深入地了解基本原理。我将解释一些最关键的工作机制,如果你想成为一名专业开发人员,你需要了解这些机制。

2. 创建一个SpringBoot项目

2.1. 先决条件

要创建新的Spring Boot应用程序,我们需要以下开发环境:

Java 1.8或更高版本

IDE: Spring STS, Intellij Idea或者vscode

包管理工具: Maven 3.2+ 或者gradle 4+

阅读更多

基于 Code-server 快速部署自己的云开发环境

1. 前言

Web IDE,顾名思义就是云端开发环境,把 IDE 部署在云上。打开浏览器,连上云 IDE,就可以方便敲代码跑程序。想象一下,带上一台 iPad 或者华为、小米平板,配上蓝牙键盘,坐在阴凉下,或者沙滩上,吹着海风,面朝大海敲代码,多么惬意。

其实 Web IDE 很早就有,但那些都只能说是玩具,直到现在才有一些不错的产品推出,比如微软和 Github 的 Visual Studio Codespaces、coding.net 的 Cloud Studio、华为云 CloudIDE 等。不过,这些产品要么还在测试,要么免费用会有限制或者价格不菲,目前还不是非常方便。

如果想要低成本愉快地使用,自己动手搭建是一个不错的方案。对配置要求不高的话,一年几十块一百多块就能买到廉价的 VPS 或者云主机就足够了。

自己DIY 一套Web IDE 比较成熟的方案有两个,code-server 和 Theia。毕竟 code-server 是基于VS code魔改的,与vs code的插件体系兼容性更好。所以更推荐code-server。Theia虽然有自己的插件体系,也宣称兼容vs code的插件,也是一套优秀的WEB IDE解决方案,但是兼容程度谁知道呢?

阅读更多