0%

由于我司目前的项目都运行在Google Cloud Platform(以下简称GCP)上,那么自然而然的,我们选择了使用GCP的Logging来查看日志。在使用过程中,我们发现了一个问题,那就是我们无法直观的看到日志是从什么地方打印出来的,经常需要通过日志内容,在代码里面通过全文搜索来定位。这样就产生了一个需求:可不可以把这条日志所在的类、方法,和行数一起打印在日志中?

阅读全文 »

我们在开发过程中,为了保证项目的灵活性,经常会选择将一些值放在配置文件中,并在代码中将它注入并使用。将值注入代码最常见的一种方法,则是使用@Value()注解搭配SpEL直接注入我们需要的属性。但是鲁迅先生有云:从来如此,便对吗?这里,我想介绍一个我个人认为更好的实践:通过配置类来注入属性的值。

阅读全文 »

这个博客从建站到现在,也差不多有两三年时间了,一直以来也都是一种“用爱发电”的状况,看到其他博主都开始通过接入广告联盟来挣零花钱,说不心动那是不可能的。所以就研究了一下怎么在这个博客里面接入Google AdSense。

在使用本文介绍的方法前,请检查您的NexT主题版本是否为v6.0.2或后续版本,因为本文涉及的功能是在v6.0.2引入的。

阅读全文 »

在实际编写配置文件时,我们不可能保证所有相关的值都是一成不变的。有的值可能会根据运行时的状态来指定,也有可能它是类似token一样的机密信息,必须从一个可信渠道获取。为了应对这种情况,我们就需要在配置文件中引入变量。

阅读全文 »

最近公司需要用到一个名叫Concourse CICI/CD工具,那么我当然就要学习一下啦。顺便还能水一篇,啊不,写一篇博客,当作学习过程中的笔记。

阅读全文 »

一个private属性只能被它所在的类访问,这件事地球人都知道。但是,你有没有想过,这条规则有没有可能在某种情况下,会变得不成立?

本文将通过一个小例子,来演示怎么让private修饰符“失效”,以及它为什么会“失效”。

阅读全文 »

在Spring中,那些由IoC容器所管理的对象被称之为bean。而一个bean的定义,其实只是一个“蓝图”,指导着Spring如何去创建这样一个bean。而在这个蓝图中,有一个属性叫做“作用域”,它规定了这个bean的可见范围。这里我们看一下Spring的bean都有哪些作用域。

阅读全文 »

在使用Spring Boot时,最使我们收益的一个功能就是它的自动配置。但是,用了这么久的自动配置功能,有没有想过它是怎么实现的?本文将从源码入手,一步一步搞明白Spring Boot自动配置的原理。

阅读全文 »

在用Git管理包含中文的文件时,会出现类似这样的“乱码”:

1
2
3
4
5
6
7
8
9
$ git status
On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
(use "git add <file>..." to include in what will be committed)
"\345\271\277\345\221\212\345\220\214\346\255\245\345\271\263\345\217\260\346\216\245\345\217\243\346\226\207\346\241\2432.0.docx.new"

nothing added to commit but untracked files present (use "git add" to track)

解决方法是配置Git的全局属性core.quotepathfalse,即执行命令git config --global core.quotepath false,然后再执行git status,就可以看到中文正常显示了:

1
2
3
4
5
6
7
8
9
$ git status
On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
(use "git add <file>..." to include in what will be committed)
广告同步平台接口文档2.0.docx.new

nothing added to commit but untracked files present (use "git add" to track)