自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序新视界

每一步成长都与你分享。公众号:程序新视界

原创 docker overlay2占用大量磁盘空间处理方法

在使用docker时,往往会出现磁盘空间不足,导致该问题的通常原因是因为docker中部署的系统输出了大量的日志内容。 此时,可通过手动或定时任务进行清除。 针对/var/lib/docker/overlay2空间占用很大网上提供了很多解决方案,其中有些误导的说法需要去迁移路径等操作。其实磁盘空间...

2020-01-30 19:48:40 14008 0

原创 2020年,生活从“不易”开始

受疫情影响,道路几乎都被封闭,短时间回京是没有希望了。整天待在家里无所事事,倒不如早些开工。今天初三,早上起来便开始着手工作。写这篇文章只是聊聊对最近发生的一些事情的看法,锻炼一下思辨能力。 学习思辨 前段时间在B站听完了台湾教授吕世浩讲的《史记》(av33989796),收获颇丰,一直计划汇总其...

2020-01-27 21:13:49 7697 6

原创 纯粹就是闲扯

写本篇文章已经是到家的第二天了,第一天回来几乎睡了一整天,纯粹补觉。今天已经恢复过来了,写篇文章跟大家随便聊聊回家过程中的一些小感悟,过年期间公众号的更新可能也没那么勤了,大家都好好过个好年,明年继续奋斗发大财。 注意流感 可能是着急着回家,对流感的严重性并没有太重视,直到朋友圈被大量流感信息覆盖...

2020-01-21 21:14:24 2849 4

原创 SpringBoot2.x系列教程(三十六)SpringBoot之Tomcat配置

Spring Boot默认内嵌的Tomcat为Servlet容器,关于Tomcat的所有属性都在ServerProperties配置类中。同时,也可以实现一些接口来自定义内嵌Servlet容器和内嵌Tomcat等的配置。 关于此配置,网络上有大量的资料,但都是基于SpringBoot1.5.x版本...

2020-01-18 10:47:27 4594 2

原创 SpringBoot2.x系列教程(三十五)SpringMVC之ViewResolver及扩展

在前些章节中我们学习了各类前端模板引擎的页面展示,发现它们的共性时,都实现了ViewResolver接口,并将实现类注入到Spring容器当中。 以Thymeleaf为例,在它的自动配置类中实现如下: @Bean @ConditionalOnMissingBean(name = "thy...

2020-01-17 10:38:50 1231 0

原创 solidity中transfer异常"send" and "transfer" are only available for objects of type address

在solidity只能合约中,正常情况下我们可以使用transfer方法来进行转账操作,具体使用如下: msg.sender.transfer(_value); 这样,就可以将指定的金额转到msg.sender的账户内。但是,还有一些情况时,ETH的接收者并不是msg.sender。那么该如何处...

2020-01-16 16:53:01 1513 0

原创 关于写作,村上春树提供的几个方法

花了几天时间读完了村上春树的《我的职业是小说家》。起初看到这本书,想读的原因很简单:写技术文章或许能够借鉴到些什么。读完之后,发现学到的知识已经超出了预期。 恰逢某读书软件推出免费读30天,于是每天读三十分钟到一小时,几天就读完了。写这篇文章只是想分享一下书中的一些令我有感触或有收获的观点。也希望...

2020-01-16 10:40:10 1093 0

转载 美团JAVA面试154道题分享

新的一轮面试季即将开始,提前为大家搜集了154到相关的面试题,虽然没有答案,但也可以为大家指引一些基本的方向。同时,后续如果有时间,也会针对以下面试题的知识点写成文章在公众号“程序新视界”内分享给大家。 Java集合22题 ArrayList 和 Vector 的区别。 说说 ArrayList...

2020-01-16 09:42:37 1052 0

原创 SpringBoot2.x系列教程(三十四)Thymeleaf自动配置源码解析

在之前的章节中我们已经学习了SpringBoot中Thymeleaf的基本使用,按照老规矩,我们最后来看一下Thymeleaf在SpringBoot中的自动配置相关源码。 关于源码阅读依旧重点给大家介绍基本的类及相关的实现思路,达到抛砖引玉的效果。而相关Thymeleaf底层的实现,大家可自行阅读...

2020-01-15 11:11:52 772 0

原创 SpringBoot2.x系列教程(三十三)Thymeleaf手动渲染实例讲解

在前面章节中我们讲解了Thymeleaf作为前端页面展示时的基本使用。之前我们也提到,Thymeleaf除了可以用于Web前端,也可以用于基于模板其他场景。 比如在发送邮件时,想让邮件的内容和格式更统一些、根据模板生成一些静态的页面或文本等,都可以使用Thymeleaf。 下面我们以Thymele...

2020-01-15 10:08:55 612 0

原创 SpringBoot2.x系列教程(三十二)Thymeleaf资源导入及公共布局

本篇文章来大家学习一下在Thymeleaf下如何引入静态资源及通用代码块。 引入静态资源 Thymeleaf中引入静态资源比较简单,与前面讲到的@{…}语法一致。 <!DOCTYPE html> <html lang="en" xmlns:th="h...

2020-01-15 08:03:17 864 0

原创 SpringBoot2.x系列教程(三十一)Thymeleaf的基本使用

本篇文章通过实例为大家讲解Thymeleaf的基本使用。 赋值 基本赋值 <h1 th:text="${name}">默认值</h1> 字符串拼接 普通拼接形式: <p th:text="'Hello ' + ${n...

2020-01-14 17:25:56 2571 0

原创 SpringBoot2.x系列教程(三十)SpringBoot集成Thymeleaf

前面章节我们介绍了SpringBoot集成jsp和Freemarker以及它们的具体应用。而在这些前端模板引擎中,SpringBoot首推使用Thymeleaf。这是因为Thymeleaf对SpringMVC提供了完美的支持。 Thymeleaf简介 Thymeleaf同样是一个Java类库,能够...

2020-01-14 10:09:03 769 0

原创 SpringBoot2.x系列教程(二十九)freemarker自动配置源码解析

在前几节中我们讲了SpringBoot中集成freemarker及其相关功能的使用。这篇文章我们从源码层面来看看,SpringBoot中freemarker相关的自动配置源码。 本篇文章源码以SpringBoot2.2.2版本为例。 FreeMarkerProperties 首先看对应applic...

2020-01-13 10:24:54 880 0

原创 SpringBoot2.x系列教程(二十八)freemarker基本语法使用

本篇文章带大家来了解一下freemarker的常见语法的基本使用。 ftl引入静态资源 style.css文件内容: body{ background-color: lightblue; } ftl文件中的引入: <link href="/css/style.css&qu...

2020-01-12 14:11:57 2091 0

原创 SpringBoot2.x系列教程(二十七)Springboot集成freemarker 404常见问题汇总

在实战中,经常会遇到按照教程集成完freemarker,访问时却出现404的问题。本篇文章给大家汇总一下常见的问题及解决方案。 常见问题一 该问题之前章节也提到,就是启动类比如SpringbootFreemarkerApplication的位置不对,并不是位于顶级包下。一般情况下该启动类与cont...

2020-01-12 11:10:08 1856 0

原创 SpringBoot2.x系列教程(二十六)Springboot集成freemarker

FreeMarker简介 FreeMarker是一款模板引擎:即基于模板和数据源生成输出文本(html网页,配置文件,电子邮件,源代码)的通用工具。它是一个java类库。 FreeMarker最初被设计用来在MVC模式的Web开发框架中生成HTML页面,它没有被绑定到Servlet或HTML或任意...

2020-01-12 10:18:32 1804 0

原创 十年一轮回,不再设限

昨天多年不见的朋友来京,一起在南锣鼓巷和后海逛游,聊了很多。总结起来就是:大家都是在负重前行。然而,朋友的一句话让我突然醒悟到,我可能正在开启新的一个轮回。 朋友说,当初毕业之后你不是也“闭关修炼”了很久么?的确如此,刚毕业的时候尝试去深圳找工作,但发现那边专业对口的工作并不是自己想要的。于是,回...

2020-01-11 11:20:26 2747 1

原创 SpringBoot2.x系列教程(二十五)Jsp中使用jstl和引入静态资源

本文以静态资源css为例,演示两种在jsp中使用静态文件的方式及jstl的引入和简单使用。以下内容均基于打war包的项目。 webapp中存放静态文件 在webapp目录下,即WEB-INF同级目录,创static/css目录,在其目录下定义title.css,内容如下: .hello-title...

2020-01-10 10:21:10 1426 1

原创 SpringBoot2.x系列教程(二十四)SpringBoot集成Jsp jar包运行404

上节课我们使用SpringBoot集成了JSP,操作很简单,但此时真正的问题还并未出现。当我们打包运行时可能会遇到莫名其妙的404问题。 会出现404的场景一般有两个,一个就是上节课中我们讲到的并没有引入如下两个依赖: <!--引入jstl--> <dependency> ...

2020-01-09 17:28:57 2745 0

原创 SpringBoot2.x系列教程(二十三)SpringBoot集成Jsp

JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。从开始学习Java Web应用,第一个学习的就是JSP和Servlet,我们就不过多介绍。直接进入Spring Boot对其集成使用的部分。 在使用之前,首先明确一下,Sprin...

2020-01-09 16:39:30 1808 0

原创 SpringBoot2.x系列教程(二十二)简单参数校验及统一异常处理

在之前章节,我们将了如何使用校验框架对JavaBean中的参数进行校验,那么如果只是一些简单参数该如何校验呢?是否也可以用BindingResult接收呢? 很遗憾,针对简单参数(比如String,Integer等)并无法使用BindingResult接收。如果强行使用,要么无效(特定场景)要么则...

2020-01-09 10:58:37 1079 0

原创 springboot全局异常处理中文乱码

在使用springboot过程中,当使用全局异常处理,即通过@RestControllerAdvice注解来定义全局异常处理。在具体的处理方法中如果返回中文可能会出现中文乱码情况。 比如,下面代码是针对参数校验的异常处理: @ExceptionHandler(ConstraintViolation...

2020-01-09 10:28:17 2476 0

原创 SpringBoot2.x系列教程(二十一)参数分组校验

在使用注解进行参数校验时还有这样的一个场景:同样的一个Java对象,在不同的接口中需要校验的参数不同,那么此时如果将两个接口的校验都进行校验,有可能出现误判情况。 比如如下User对象: @Data public class User { private String username; pr...

2020-01-08 21:46:48 1149 0

原创 SpringBoot2.x系列教程(二十)自定义参数校验注解

在SpringBoot的使用过程中,默认使用hibernate-validator作为参数校验的框架,但某些业务场景或校验比较复杂,通过默认提供的注解已经无法满足。此时,除了使用正则表达式来进行校验也可以使用自定义的注解。 比如,对于手机号的简单校验如下: @Pattern(regexp = &q...

2020-01-08 17:15:55 1128 0

原创 SpringBoot2.x系列教程(十九)Validation数据校验基础使用

在正常的业务处理中,针对外部的情况,校验参数的合法性是必须的,而在Spring MVC中有两种验证方式:Spring自带的验证框架和基于JSR实现的框架。 其中JSR(JSR303/SR-349)是一个规范文档,规定一些校验规范。Hibernate Validator就是基于JSR303规范的具体...

2020-01-08 13:00:09 1870 0

原创 设计师,程序员,当心字体侵权

近些年不时会听到这样的报道:某公司因字体侵权被罚款多少,某电影因几个字侵权被罚款多少,某实习生因不了解字体版权导致公司巨额损失等等。 最近在设计一个网站时特意调研了一下字体侵权的事,汇总分享给大家,免得再掉进坑中。同时,也为大家提供一些可免费商用的字体库。文末有免费字体库礼包。 顺便提一下写这篇文...

2020-01-08 09:40:12 1819 0

原创 SpringBoot2.x系列教程(十八)HttpMessageConverter实战及经验

在篇文章中介绍了自定义HttpMessageConverter的使用,其中我们通过实现WebMvcConfigurer接口来完成自定义HttpMessageConverter并向spring容器中添加的操作。本篇文章我们就通过集成fastjson这个实例,来汇总一下将HttpMessageConv...

2020-01-07 20:07:56 1380 0

原创 SpringBoot2.x系列教程(十七)自定义HttpMessageConverter实战

在上篇文章中我们了解了HttpMessageConverter的基本使用,这篇文章带大家自定义特殊业务场景的HttpMessageConverter。 业务场景如下,对项目中返回的Json字符串进行Base64处理。当然,我们可以直接实现HttpMessageConverter接口的方法来完成该功...

2020-01-07 14:38:00 776 0

原创 SpringBoot2.x系列教程(十六)SpringBoot之HttpMessageConverter原理详解

在前面章节中讲到的@RequestBody、@ResponseBody等注解,之所以可以进行Json与Java Bean之间的相互转换,就是因为HttpMessageConverter发挥着作用。 HttpMessageConverter HTTP请求和响应是基于文本的,意味着浏览器和服务器通过文...

2020-01-07 10:09:49 944 0

原创 Java开发神器Lombok使用详解

最近正在写SpringBoot系列文章和录制视频教程,每次都要重复写一些Getter/Setter、构造器方法、字符串输出的ToString方法和Equals/HashCode方法等。甚是浪费时间,也影响代码的可读性。因此,今天就给大家推荐一款Java开发神器——Lombok,让代码更简单易读。 ...

2020-01-07 07:49:22 7429 4

原创 SpringBoot2.x系列教程(十五)SpringBoot Jackson属性配置详解

在SpringBoot中使用Jackson,Spring Boot默认提供了一套初始化配置,同时也提供了可通过application配置文件进行配置的项目。 通过这些配置项,可更加方便的进行Json转化的配置。其实,Spring Boot针对内置的几种Json框架都有相应的配置,比如GSON和JS...

2020-01-03 10:10:24 1931 1

原创 SpringBoot2.x系列教程(十四)SpringBoot Json之@JsonComponent

如果使用Jackson对JSON数据进行序列化和反序列化,则可以编写自己的JsonSerializer和JsonDeserializer。然后通过@JsonSerialize和@JsonDeSerialize来指定具体类是否使用。 同时,SpringBoot提供了一个可选的@JsonCompone...

2020-01-03 08:11:26 1443 0

原创 SpringBoot2.x系列教程(十三)Jackson命名策略及自定义序列化

上篇文章中我们介绍了常见的Jackson注解,本篇文章对其进行扩展,重点介绍指定自定义序列化的注解@JsonSerialize。 @JsonNaming 首先,上节课的注解中漏掉了一个@JsonNaming注解,我们先来看一下该注解的具体使用。 @JsonNaming:作用于类或属性上,用于指定命...

2020-01-02 18:59:21 1839 2

原创 Spring Boot Jackson命名策略

在Spring Boot的Jackson中我们可以使用@JsonProperty对Java属性转Json字符串的key进行指定。那么,当批量处理统一类型的格式时,@JsonProperty就显得比较麻烦了。 public class LoginUser { @JsonProperty(&quo...

2020-01-02 10:22:10 1139 1

原创 SpringBoot2.x系列教程(十二)Jackson常用注解使用详解

在前些文章中我们曾提到一个问题,比如在Spring Boot中返回的对象,我们并不想直接返回所有的字段或者想指定字段的别名,那么该如何处理呢? Jackson为我们提供了一些相关的注解来帮助我们处理以上问题。下面,我们逐个通过实例来了解一下Jackson针对Java对象的常用注解使用。 使用场景是...

2020-01-02 09:44:43 1296 3

原创 日期格式化跨年bug,是否与你不期而遇?

2020年来临之前,日期格式化操作也为程序员准备了一个跨年级别的bug,不知你的系统是否遇到? 临近2020年元旦的几天,不少网站出现了类似2020/12/29,2020/12/30,2020/12/31这样的日期显示。神奇不?就连微信的提供的订阅号助手工具都出现了这样的错误。 下面两张图是本公众...

2020-01-02 07:57:01 2616 2

原创 2020,只争朝夕,不负韶华

今天是2020年的第一天,在此祝大家新年快乐。 新年的第一天,总想说点什么,也总觉得该说点什么,但又无从说起。那么,本篇文章就闲扯一些小感想。 前些天写了《2019年马上结束了,当初立的flag如何了》一文,虽然在公众号没有引起多大反响,但发在博客上受到不少朋友的关注。当然,心中是有那么点小欢喜。...

2020-01-01 09:50:57 2228 5

提示
确定要删除当前文章?
取消 删除