https://avatars.githubusercontent.com/u/18242685

lihuu's blog

百度搜索引擎指令

双引号

双引号表示精确搜索,例如,在百度中搜索 java 技术关键字,可以发现 java技术这两个词被分开处理了,即包含 java 和 技术这两个关键字的结果都会返回。

/img/image-20200623130153198.png

如果我们给这两个词加上双引号,就会发现只有这两个词在一起的页面才会被返回,这个就是关键词的精确搜索。

/img/image-20200623130454700.png

site

用来搜索某个域名之下的内容,例如 site:apple.com ipadOS

记录一次在SpringBoot项目中使用log42.yml作为配置文件遇到的问题

首先在 SpringBoot 中集成log4j2还是比较容易的,只需要在 maven 的 pom 文件中修改一下 logging 的依赖然后在resources中添加log4j2相关的配置文件就可以了。 我当时使用的是log4j2.yml格式的配置文件,所以就在mavenpom.xml文件中做了如下的修改:

<dependencies>
...
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!--添加log4j2依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>

    <!-- 使用log4j2.yml文件格式来配置,需要引入如下的包 -->
    <dependency>
        <groupId>com.fasterxml.jackson.dataformat</groupId>
        <artifactId>jackson-dataformat-yaml</artifactId>
    </dependency>
...
</dependencies>

这个在我当时的项目中是正确运行的。 我后来又创建了一个新的项目,也想用log4j2,就直接复制了上一个项目中配置了,但是在运行的时候发现怎么也加载不了log4j2的配置文件,总是提示ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided ...,但是log4j2的配置文件的确是存在的。 在这样的情况下,日志是无论如何都不会打印出来的,没办法只能加上log4j2.debug属性进行调试,在控制台的日志中我发现了这样一条日志WARN StatusLogger Found configuration file log4j2.yml for inactive ConfigurationFactory org.apache.logging.log4j.core.config.yaml.YamlConfigurationFactory,大体就是YamlConfigurationFactory不是激活状态,就试着全局搜索这句话,找到了如下的代码,

Maven的依赖范围

maven 有以下几种依赖范围:

  • compile编译依赖范围这个是默认的依赖范围,使用这个依赖范围的依赖,对于编译、测试、运行三种 classpath 都有效。

  • test测试依赖范围。这个只对测试 classpath 有效,在编译和项目运行的时候是无法使用此类依赖的,例如 JUnit 依赖。

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <scope>test</scope>
    </dependency>
  • provided已经提供的依赖。这种依赖只对编译和测试的时候有效,运行的时候不会使用这类依赖,例如 servlet-api,在编译和测试项目的时候,都需要使用到这个依赖,在项目运行的时候,容器会提供这个依赖。

Git重写历史

使用git commit --amend修改最后一次提交

如果仅仅是修改最后一次提交的信息,可以直接输入git commit --amend,之后会自动打开一个文本编辑器,直接修改这一条信息就可以了。 /img/1582968318104.png

git rebase -i 使用

修改多个提交信息

Git 中不包含修改历史的工具,可以通过git rebase来间接地实现更改。 例如我想修改最近三次提交历史,可以输入git rebase -i HEAD~3-i表示以交互模式打开进行git rebase,之后会自动打开一个文本编辑器,效果如下图所示: /img/1582968816746.png 我们可以看到前面三行就是最近三次的提交历史(注意这里的显示是按照提交时间正序显示的,我们使用 git log 命令展示的是按照时间倒着显示的),如果我们要修改第一行,就是修改倒数第三次提交,将第一行的**pick修改为edit**,然后保存。 /img/1582969080107.png 然后再执行git commit --amend,会进入和图 1 类似的文本编辑器中,修改信息后保存并关闭文件。这个时候,我们可以使用git status命令查看当前工作区中的状态: /img/1582969386005.png 。我们很容易发现 rebase 还没有完全结束。在这里,我们还需要运行git rebase --continue继续进行 rebase 操作。 下面我们来简单总结一下修改对个提交历史的步骤:

一些比较有用的网站

一个免费的图床网站

路过图床是一个可以提供高速稳定的图片上传和外链服务,目前是免费的,并且也没有流量限制。

网站地址https://imgchr.com/

https://s2.ax1x.com/2020/03/01/32tVeg.jpg

一个可以下载无损音乐的网站

超高无损音乐,这个网站可以下载一些无损格式的音乐,音乐的来源是百度网盘别人分享的。

网站地址https://www.sq688.com/

一个可以生成漂亮的代码的图片的网站

Carbon,这个网站可以帮助我们生成一些漂亮的代码图片。

网站地址https://carbon.now.sh/

Maven使用

初始化一个 maven 项目

在命令行中运行如下的命令mvn archetype:generate使用交互式的方式生成项目。 也可以使用单行的命令mvn archetype:generate -DgourpId = your groupId -DartifactId=your artifactId -Dversion=your version -Dpackage=your package

Maven 依赖出现的冲突

可以使用如下的命令,如下的命令可以显示详细的依赖信息,包括冲突的和重复的依赖,内容是以一颗依赖树的形式展示的,如果出现冲突,生效的是离树根近的,那个包,远的依赖包将会被忽略。

常用的正则表达式

匹配特定数字

  • 整数:^-?[1-9]d*$
  • 正整数:^[1-9]d*$
  • 负整数:^-[1-9]d*$
  • 非负整数:^[1-9]d*|0$
  • 非正整数:^-[1-9]d*|0$
  • 正浮点数 :^[1-9]d*.d*|0.d*[1-9]d*$
  • 负浮点数:^-([1-9]d*.d*|0.d*[1-9]d*)$
  • 浮点数:^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$
  • 非负浮点数:^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$
  • 非正浮点数:^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$

匹配特定字符串:

  • 26 个英文字母组成的字符串^[A-Za-z]+$
  • 26 个英文字母的大写组成的字符串^[A-Z]+$
  • 26 个英文字母的小写组成的字符串^[a-z]+$
  • 数字和 26 个英文字母组成的字符串^[A-Za-z0-9]+$
  • 数字、26 个英文字母或者下划线组成的字符串^w+$
  • 在使用 RegularExpressionValidator 验证控件时的验证功能及其验证表达式介绍如下:
  • 只能输入数字:^[0-9]*$
  • 只能输入 n 位的数字:^d{n}$
  • 只能输入至少 n 位数字:^d{n,}$
  • 只能输入 m-n 位的数字:^d{m,n}$
  • 只能输入零和非零开头的数字:^(0|[1-9][0-9]*)$
  • 只能输入有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
  • 只能输入有 1-3 位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
  • 只能输入非零的正整数:^+?[1-9][0-9]*$
  • 只能输入非零的负整数:^-[1-9][0-9]*$
  • 只能输入长度为 3 的字符:^.{3}$
  • 只能输入由 26 个英文字母组成的字符串:^[A-Za-z]+$
  • 只能输入由 26 个大写英文字母组成的字符串:^[A-Z]+$
  • 只能输入由 26 个小写英文字母组成的字符串:^[a-z]+$
  • 只能输入由数字和 26 个英文字母组成的字符串:^[A-Za-z0-9]+$
  • 只能输入由数字、26 个英文字母或者下划线组成的字符串:^w+$
  • 验证用户密码:^[a-zA-Z]w{5,17}$正确格式为:以字母开头,长度在 6-18 之间,
  • 只能包含字符、数字和下划线.
  • 验证是否含有^%&’,;=?$等字符:[^%&’,;=?$x22]+
  • 只能输入汉字:^[u4e00-u9fa5],{0,}$
  • 验证 Email 地址:^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$
  • 验证 InternetURL:^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$
  • 验证电话号码:^((d{3,4})|d{3,4}-)?d{7,8}$
    正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX, * XXX-XXXXXXXX,XXXXXXX,XXXXXXXX
  • 验证身份证号(15 位或 18 位数字):^d{15}|d{}18$
  • 验证一年的 12 个月:^(0?[1-9]|1[0-2])$正确格式为:01-09 和 112
  • 验证一个月的 31 天:^((0?[1-9])|((1|2)[0-9])|30|31)$
  • 正确格式为:0109 和 131。
  • 中文字符的正则表达式: [u4e00-u9fa5]
  • 双字节字符(包括汉字在内):[^x00-xff]
  • 空行的正则表达式:n[s| ]*r
  • HTML 标记的正则表达式:/< (.*)>.*|< (.*) />/
  • 首尾空格的正则表达式:(^s*)|(s*$)
  • Email 地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
  • 网址 URL 的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?
  • 非英文单词之间的空格**(?<![a-zA-Z])(\\s*|\t|\r|\n)(?![a-zA-Z])**

Window软件搜集

  • Sysinternals

  • install4J Java 安装包制作工具

  • FastStone Capture 6.9 name:bluman serial/序列号/注册码:VPISCJULXUFGDDXYAUYF

  • Git Extensions

  • Scoop : powershell 中的包管理器,安装过程https://github.com/lukesampson/scoop 安装步骤:

    1. Set-ExecutionPolicy RemoteSigned -scope CurrentUser设置脚本安装的权限
    2. iex (new-object net.webclient).downloadstring('https://get.scoop.sh') 下载安装 scoop
    3. scoop install <software>安装软件
      • scoop install sudo
      • scoop install colortool
      • scoop install hugo
  • microsoft/terminal微软家的新的命令行 (https://github.com/microsoft/Terminal.git)