2 风尘博客

尚未进行身份认证

我要认证

Good good study , day day up !

等级
TA的排名 9w+

Maven系列(一):Maven 介绍与安装

虽然现在Gradle已经是主流,但是使用Maven维护的项目绝不占少数,刚好整理了下,整理成一个系列分享给大家。

2020-09-13 20:24:21

Java 泛型详解:泛型类、泛型接口和泛型方法

Java 泛型一、概述Java 泛型(generics)是 JDK 1.5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许开发者在编译时检测到非法的类型。1.1 什么是泛型?泛型,即参数化类型。一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参。那么参数化类型怎么理解呢?顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。泛型的本质是为了参数化

2020-07-05 06:06:18

正则表达式全解析

正则表达式定义了字符串的模式,可以用来搜索、编辑或处理文本。一、正则基础知识点1.1 元字符元字符是构造正则表达式的一种基本元素。几个常用的元字符:元字符说明.匹配除换行符以外的任意字符\w匹配字母或数字或下划线或汉字\s匹配任意的空白符\d匹配数字\b匹配单词的开始或结束^匹配字符串的开始$匹配字符串的结束1.2 重复限定符正则表达式中一些重复限定符,把重复部分用合适的限定符替代。语法说明.

2020-06-23 14:20:03

Java 科学计算之 BigDecimal 全集

一、BigDecimal的产生背景首先我们先来看如下代码示例:@Testpublic void countDemo() { logger.info("result:{}", 0.06 + 0.01); logger.info("result:{}", 1.0 - 0.42); logger.info("result:{}", 4.015 * 100); logger.info("result:{}", 303.1 / 1000);}结果如下result:0.06

2020-06-17 11:32:14

Java 获取本地IP地址和主机名

拿到本机 IP不是一件困难的事,但是拿到正确的就比较难了。一、一般方式【菜鸟教程】中直接通过 java.net.InetAddress类获取,如下:import java.net.InetAddress; public class Main { public static void main(String[] args) throws Exception { InetAddress addr = InetAddress.getLocalHost(); Sy.

2020-06-13 14:56:12

Mybatis 系列:Pagehelper + 拦截器实现分页

一、分页插件 PagehelperPageHelper是Mybatis的一个分页插件,非常好用!1.1 Spring Boot 依赖<!-- pagehelper 分页插件--><dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <v

2020-05-11 23:03:58

Spring Boot 系列:整合 Apache Dubbo

Apache Dubbo是一款高性能、轻量级的开源 Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。注意,是 Apache Dubbo,不再是 Alibaba Dubbo(老版本的)。简单来说就是 Alibaba 将 Dubbo 移交给 Apache 开源社区进行维护。参见 dubbo-spring-boot-project...

2020-05-06 22:08:36

Spring系列:对象属性拷贝方式总结

当`get/set`太繁琐时;当`BeanUtils`无法拷贝集合时;当。。。可能,你需要好好看看这篇文章,文末附完整示例代码。

2020-04-23 00:39:04

Spring Boot 系列:发送邮件

发送邮件应该是网站的必备拓展功能之一,注册验证、忘记密码或者是给用户发送营销信息。一、邮件协议在收发邮件的过程中,需要遵守相关的协议,其中主要有:发送电子邮件的协议:SMTP;接收电子邮件的协议:POP3和IMAP。1.1 什么是SMTP?SMTP全称为Simple Mail Transfer Protocol(简单邮件传输协议),它是一组用于从源地址到目的地址传输邮件的规范,通过...

2020-03-30 21:39:07

从BWM生产学习工厂模式

工厂模式应用非常之广,在JDK底层源码以及各大主流框架中随处可见,一般以Factory结尾命名的类,比如Mybatis中的SqlSessionFactory,Spring中的BeanFactory等,都是工厂模式的典型代表。一、简单工厂模式1.1 概念简单工厂模式又称为静态工厂模式,属于设计模式中的创建型模式。简单工厂模式通过对外提供一个静态方法来统一为类创建实例,目的是实现类与类之间解耦:...

2019-12-03 00:06:39

跟我学设计模式之单例模式

从今天开始,我将正式开始设计模式系列文章的写作分享。第一篇,当然从单例模式说起。单例模式可以说只要是一个合格的开发都会写,但是如果要深究,小小的单例模式可以牵扯到很多东西,比如:多线程是否安全?是否懒加载?性能等等。还有你知道几种单例模式的写法呢?如何防止反射破坏单例模式?

2019-11-21 20:10:19

Spring系列:计时器 StopWatch

业务系统中经常需要两个对象进行属性的拷贝,大多时候时候使用的是Apache或Spring``BeanUtils,今天,我们来看一下一个更高效的属性拷贝方式:BeanCopier。

2019-11-06 19:37:53

Spring Boot 系列:过滤器+拦截器+监听器

原 Swagger 文章合并到 Spring Boot 系列:配置 Swagger2一、过滤器 - Filter过滤器是处于客户端和服务器资源文件之间的一道过滤网,帮助我们过滤掉一些不符合要求的请求。1.1 过滤器介绍过滤器依赖于Servlet容器过滤器可以拦截到方法的请求和响应(ServletRequest request, ServletResponse response),并对请求/响应做出过滤操作。1.2 过滤器用途用来做一些过滤操作,获取我们想要获取的数据:在过滤器中修改.

2019-10-10 23:40:27

JDK 1.8 之 Map.merge()

背景Map 中ConcurrentHashMap是线程安全的,但不是所有操作都是,例如get()之后再put()就不是了,这时使用merge()确保没有更新会丢失。因为Map.merge()意味着我们可以原子地执行插入或更新操作,它是线程安全的。一、源码解析default V merge(K key, V value, BiFunction<? super V, ? super V,...

2019-10-09 21:32:46

Spring Boot 系列:整合JWT

Spring Boot认证:整合Jwt背景Jwt全称是:json web token。它将用户信息加密到token里,服务器不保存任何用户信息。服务器通过使用保存的密钥验证token的正确性,只要正确即通过验证。优点简洁: 可以通过URL、POST参数或者在HTTP header发送,因为数据量小,传输速度也很快;自包含:负载中可以包含用户所需要的信息,避免了多次查询数据库;因为To...

2019-10-05 00:12:02

以商品超卖为例讲解Redis分布式锁

本案例主要讲解Redis实现分布式锁的两种实现方式:Jedis实现、Redisson实现。网上关于这方面讲解太多了,Van自认为文笔没他们好,还是用示例代码说明。一、jedis 实现该方案只考虑Redis单机部署的场景1.1 加锁1.1.1 原理jedis.set(String key, String value, String nxxx, String expx, int ti...

2019-09-21 00:47:59

Spring Boot 系列:图片验证码及校验

文章目录一、思路二、示例代码2.1 项目依赖和配置2.2 生成图片验证码工具类2.3 测试接口三、测试及总结3.1 获取图片验证码3.2 校验图片验证码3.3 示例代码3.4 技术交流一、思路后端生成数字和字母混搭的指定位数的验证码,存储在Redis中;将生成的验证码画成图片并转换成base64字符,和Redis 验证码的key 一块返给前端;前端登录时候,把验证码传给后端,后端 取出 ...

2019-09-15 23:08:15

Spring Boot 系列:参数校验之 Validator

背景在开发中经常需要写一些字段校验的代码,比如非空,长度限制,邮箱格式验证等等,导致充满了if-else 的代码,不仅相当冗长,而且很让人抓狂。hibernate validator(官方文档)提供了一套比较完善、便捷的验证实现方式。它定义了很多常用的校验注解,我们可以直接将这些注解加在我们JavaBean的属性上面,就可以在需要校验的时候进行校验了。在Spring Boot 火热的现在,...

2019-09-11 23:57:21

Spring Boot 系列:RestFul API 接口实现统一格式返回

文章目录背景一、统一格式设计1.1 返回格式1.2 状态码1.3 错误信息1.4 返回对象1.5 成功标示二、实现方案2.1 错误码枚举2.2 统一结果集封装三、测试及总结3.1 简单的测试3.2 其他3.3 技术交流背景在分布式、微服务盛行的今天,绝大部分项目都采用的微服务框架,前后端分离方式。前端和后端进行交互,前端按照约定请求URL路径,并传入相关参数,后端服务器接收请求,进行业务处理,...

2019-09-10 22:18:50

Spring Boot 系列:集成 zxing 生成二维码

背景在网站开发中,经常会遇到要生成二维码的情况,比如要使用微信支付、网页登录等.在网站开发中,经常会遇到要生成二维码的情况,比如要使用微信支付、网页登录等.二维码应用场景信息获取(名片、地图、WIFI密码、资料)网站跳转(跳转到微博、手机网站、网站)广告推送(用户扫码,直接浏览商家推送的视频、音频广告)手机电商(用户扫码、手机直接购物下单)防伪溯源(用户扫码、即可查看生产地;...

2019-09-05 22:16:39

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。