记一次博客从Centos迁移至Ubuntu

前言

我的搭建博客的VPS使用的是Centos7系统。有鉴于Centos以后全面转向Stream分支,以及知乎上大佬对于Centos的一些负面评价。为了以后能够更好地获得新特性和支持,我决定将博客迁移到新的Linux发行版上。

选择发行版

我个人对于Linux方面了解并不多,所以在希望选择一个社区人数多,网上教程比较多的流行发行版。要论最流行的发行版,那必然是非Ubuntu莫属了。最终我选择了Ubuntu。

最新版还是长期支持版

摆在我面前有两个Ubuntu版本可供选择:

  • Ubuntu 20.04.3 LTS
  • Ubuntu 21.10

最终我选择了Ubuntu 21.10版本,原因如下:

  • 我的博客站实际上对于稳定性的要求并不是特别高
  • 最新版的Ubuntu已经足够稳定
  • 我更想尝鲜新版本的软件
  • Ubuntu升级版本也并不麻烦

迁移前的备份工作

主要包含以下内容:

  • 备份MariaDB数据库
Continue reading

前端开发填坑记

input输入框必须指定最大长度

新建打印窗口,打印不全的问题

    printWin = window.open("", "newwin", "");
    //printWin.document.write(printHtml);
    //printWin.document.close();
    printWin.document.body.innerHTML= printHtml;
    printWin.window.print();
    printWin.close();

jQuery选择器中含有特殊字符的问题

用两个/转义

1    
var $id_a = $('#id.a');//jQuery对象,实际上是没取到元素的    

Continue reading

java web开发填坑记

以下是我在java web开发中遇到的问题以及解决办法:

导入xStream运行出错

  • 去掉dom4j的依赖

启用Mybatis驼峰自动转换

  • 在Mybatis config 里添加
    <settings>
        <!--开启驼峰自动转换-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>
    </

    同类型转换错误

  • 去掉以下依赖
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            
Continue reading

前端打印高度显示不全的问题

最近在写页面打印功能的时候,发现当页面超过一定高度的时候,打印时只会截取中间一部分打印出来。于是我在想会不会是打印时overflow样式的问题。于是在stackoverflow上找到了如下解答:

https://stackoverflow.com/questions/16221412/css-media-print-causes-part-of-the-page-to-be-cut-off-during-printing-in-ie

Printing CSS:

  1. Make sure all print floats are: float none;
  2. Make sure your body is overflow-y: visible;
  3. Make
Continue reading

利用正则表达式实现简单的文本键值对转xml

前言

前两天我有类似下面这样的文本需要转成xml格式。

源文本:

0411 大连
010 北京

xml格式:

<Property name="0411" value="大连"/>
<Property name="010" value="北京"/>

这样的数据有很多,自然一个个手动改又笨又麻烦。当时我就想在网上找个轮子或是自己造个轮子修改,后来转念一想“为啥不试试神奇的正则表达式呢?”。

查找正则

要想将源文本进行修改替换,首先需要对源文本进行匹配。通过翻阅菜鸟教程上的正则表达式语法,我写出了如下正则来匹配源文本:

[0-9]+s+[u4e00-u9fa5]+
Continue reading

线程安全的缓存Map

有时候需要使用线程安全的HashMap作为缓存,我们可以指定ConcurrentReferenceHashMap的引用级别为弱引用

  • ConcurrentReferenceHashMap可以指定引用级别(比如弱引用)
public class TestConcurrentReferenceHashMap {

    public static void main(String[] args) {
        ConcurrentReferenceHashMap map = new ConcurrentReferenceHashMap(16, ConcurrentReferenceHashMap.ReferenceType.WEAK);
        map.put(key,val);

        System.out.println(map);

        
Continue reading