自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(133)
  • 收藏
  • 关注

原创 怎样下载PDF版的Spring文档

进入spring官网,首页如下图:将鼠标指向顶部导航栏中的 ‘Projects’ 选项,如下图:在弹出的菜单中选择 ‘Spring Framework’,如下图:点击 ‘LEARN’,如下图:选一个版本,点击 ‘Reference Doc’,如下图:此时就找到了 spring framework 5.2.8 版本的文档,该文档的地址是https://docs.spring.io/spring/docs/current/spring-framework-reference/,如下图:.

2020-08-09 10:45:16 56

原创 策略模式(二)

再次学习一下策略模式,加深理解,这个老外讲的非常好(个人意见)/** * 策略的调用者 客户端 * * @author qsm * @date 2020/05/26 21:14 */public abstract class Duck { private IFlyBehavior flyBehavior; private IQuackBehavior quackBehavior; private IDisplayBehavior displayBehavior;

2020-05-28 23:32:25 188

原创 原生feign的使用之一(post请求 + body)

注意:本文讲的是原生feign,不是结合spring使用feign场景描述在开发的时候遇到一个问题:由于种种原因,需要使用原生feign发起一个post请求,请求体是json格式。解决方案见 https://github.com/OpenFeign/feign 的 readme 中 Encoders 部分测试先启一个服务,代码很简单 @PostMapping(value = "/address/create") @ResponseBody public St

2020-05-28 21:12:46 1285

原创 下载mysql(所有版本)

https://downloads.mysql.com/archives/

2020-03-27 17:03:47 149

原创 builder模式

比较简单,看个例子:package com.qs.mmeng.design.pattern.builder;import lombok.ToString;/** * tutorial * * @author qs * @date 2018/09/10 */@ToStringpublic class Student { private Integer id; priv...

2020-03-19 22:58:34 49

原创 tkmapper中自定义的typehandler不生效的问题

请在字段上添加@ColumnType注解。例如:

2020-03-18 09:23:29 817

原创 Java程序员千万不能错过的网站

https://tools.ietf.org/https://www.jcp.org/en/home/index

2020-03-13 23:41:03 42

原创 MySql中的DATETIME类型和TIMESTAMP类型

DATETIME类型是为了存储既包含’日期’又包含’时间’的值。MySql以YYYY-MM-DD HH:MM:SS的格式来提取和显示DATETIME类型的值。DATETIME类型支持的范围是1000-01-01 00:00:00到9999-12-31 23:59:59。TIMESTAMP类型是为了存储既包含’日期’又包含’时间’的值。TIMESTAMP类型支持的范围是1970-01-01 00...

2020-03-07 15:28:08 89

原创 解决angular项目在IE10、IE11上运行,表单组件在输入之前就校验的问题

问题描述在IE10和IE11中,表单中还没有输入任何内容,校验信息就显示出来了。现象举例问题原因及解决办法这个问题在GitHub上已经讨论的很火了,原因也说的很明白了,并且angular团队也给出了解决办法。相关链接: issue-14440。终极解决办法:UniqueInputEventPlugin...

2020-03-04 21:33:44 498 2

原创 validation-api中@GroupSequence的使用

考虑一种场景:一个bean有3个属性(假如说是attrA、attrB、attrC)需要做校验。默认情况下,validation-api对这3个属性的校验顺序是随机的。也就是说,可能先校验attrA,再校验attrB,最后校验attrC,也有可能先校验attrB,再校验attrC,最后校验attrA。那么,如果我们的需求是先校验attrA,再校验attrC,最后校验attrB。validation...

2020-03-04 21:06:42 456

原创 angular项目报Module not found错误的一种可能原因

原因:在进行import的时候,使用的是webstorm这种IDE导入的,导致导入文件的路径太过精确实例:上图是我用webstorm的自动导入功能引入的,结果报了如下错误:修改以后就好了:...

2020-03-03 16:35:41 300

原创 Spring 中的数据校验

在做web项目的时候,经常会数据校验的情况,比如,用户通过表单提交向后台发送一个对象,后台往往需要校验用户输入是否合法,校验通过的时候将该表单数据入库。这里的校验又分为2种类:第一种是类似于非空校验、长度校验、最大最小值校验这种,这种校验通过前端JS也是可以做的,但是为了程序的健壮性,后台接口往往也会做这种校验,这样的校验使用hibernate validator最合适不过了;第二种校验稍微复杂一...

2019-08-29 23:43:03 75

原创 解决sourcetree特别卡的问题

问题原因:sourcetree 会读取 package-lock.json 文件,而这个文件又很大(不知道怎么搞的,即使将package-lock.json配置在.gitignore中,sourcetree还是会读取这个文件)!解决办法:在 sourcetree 的配置中,忽略 package-lock.json 文件配置如下:效果如下:...

2019-08-12 11:25:19 6891

原创 js获取当前月第一天和最后一天

2019-08-08 11:43:43 317

原创 MyBatis中默认的别名有哪些

mybatis中默认的别名都在TypeAliasRegistry这个类中定义着:public class TypeAliasRegistry { private final Map<String, Class<?>> TYPE_ALIASES = new HashMap<String, Class<?>>(); public TypeA...

2019-04-24 10:12:22 769

原创 Hibernate Validator 6.0.7.Final 之六(自定义枚举类型的约束)

在对bean的属性进行校验的时候,经常会碰到下面这种情况:假设有这样一个属性,名为attr,我们需要它的可取值固定在一个枚举中。举个例子:被校验的bean名为People,People中有一个String类型的属性sex,我们要求该属性的取值只能是"male"和"female"。这种校验并不复杂,直接看代码好了。被校验的属性 /** * 合伙人类型: 1-企业 2-个人...

2019-02-14 15:43:33 192

原创 自定义mybatis generator的注释生成器

用过mybatis generator的同学应该都知道它生成的bean大概是下面这个样子(如果配置文件中开启了生成注释选项的话):从中可以看出,默认生成的bean中的注释并不友好,那么,我们有没有办法自定义这些注释呢,答案是肯定的。具体的做法就是自己定义一个注释生成器。怎么自定义注释生成器呢?方法有2种:第一种是实现mybatis generator提供的CommentGenerator接...

2019-01-23 17:19:23 519 1

原创 zuul异常处理

注意,关于怎样在zuul中处理异常,网上有很多方法,本文只讲述其中的一种。首先,我们要知道以下几点:zuul中有一个默认的处理异常的filter,名为 SendErrorFilter,这个过滤器实际所做的工作只是将异常处理转发到了 ‘/error’ 这个路径上承接上一点,在springboot中,有一个默认的处理异常的controller,名为 BasicErrorControlle...

2019-01-16 13:14:59 3363 2

原创 Hibernate Validator 6.0.7 Final 之五(@GroupSequenceProvider的使用)

Hibernate Validator 提供了"根据对象状态动态重定义默认分组"的接口。什么意思呢?考虑下面这个场景:假如一个bean有3个属性,分别是attrA, attrB和attrC。当attrA属性的值是value1,我们需要对attrB进行校验;当attrA属性的值是value2的时候,我们需要对attrC进行校验。为了实现上面这个目的,我们需要实现DefaultGroupSeque...

2018-12-20 19:26:01 1444

原创 Hibernate Validator 6.0.7 Final 之五(分组的继承)

在Hibernate Validator 6.0.7 Final 之五(初识分组校验)中,我们对分组有了初步认识。同时,在最后的测试中,我们看到,如果想对某分组进行校验,我们需要明确将该分组列出来。那么,如果我们需要在校验A分组的时候,同时将B分组包含进来,也就是说,在校验的时候,虽然我们只是指定了A分组,但是A分组和B分组上的约束都生效了。这个问题就是本文要讲解的–分组的继承。下面通过一个例子来...

2018-12-16 13:04:39 270 2

原创 Hibernate Validator 6.0.7 Final 之五(初识分组校验)

首先,解释一下什么是分组校验?所谓分组,就是允许我们在校验过程中指定使用哪些约束。比如说:一个被校验的bean有10个属性。在某次校验中,我们只想校验前5个属性,后5个属性不想校验(也就是说,定义在前五个属性上的约束生效,而定义在后五个属性上的约束不生效);在另一次校验中,我们只想校验后5个属性,而不想校验前五个属性。要实现这个目标,我们可以对属性进行分组,然后在实际校验的时候明确指定我们要校验哪...

2018-12-16 12:24:16 670

原创 统一社会信用代码的校验

相关链接:统一社会信用代码编码规则public static boolean isValidUnifiedSocialCreditIdentifier(String unifiedSocialCreditIdentifier) { // 代码字符集,不含 I O S V Z,共30位 String codes = "0123456789ABCDEFGHJKLMNPQRTUWXY...

2018-12-07 20:25:38 3986 1

原创 Java8中Map接口的getOrDefault方法

今天在查看org.springframework.core.io.support.SpringFactoriesLoader的源码的时候,看到了下面这个地方:无意中发现了上图中的getOrDefault方法,于是到对应的源码中看一看:很明显:如果map中含有指定的key,就返回该key对应的value,否则使用该方法的第二个参数作为默认值返回,下面是一个测试:@Test publ...

2018-11-26 17:23:10 3729

原创 CommandLineRunner和ApplicationRunner接口的作用

如果想要在SpringApplication启动后做一些事情,我们可以实现CommandLineRunner或者ApplicationRunner接口。这2个接口都提供了一个run方法,这个run方法会在SpringApplication.run(…)完成之前被调用。先看一下这2个接口(它们区别不大):然后看一个例子:另外,需要注意的是,我们可以同时使用多个实现了上述2个(任一)接口的b...

2018-11-24 11:08:58 1186

原创 自定义springboot项目的banner

注意:本文仅供娱乐默认情况下,spring boot项目启动的时候会打印出这样一个效果:实际上,这个效果是可以自定义的,具体怎么做,其实很简单,我们可以在classpath下面放上一个名为banner.txt的文件,里边放入想要打印出来的内容,例如:启动项目,查看打印效果:当然,还可以在classpath下面放上一个名为banner.gif或者banner.png或者banner.j...

2018-11-21 22:39:19 140

原创 怎样在普通类中使用被spring管理的bean

在使用spring做开发的时候,有时候会碰到的一个问题是----怎样在普通的类(不被spring管理、没有注入到spring容器中)中调用spring容器中的bean?因为调用方是普通类,不是被spring管理的bean,所以依赖注入是没法用了。那么,有没有解决办法呢?当然是有的。网上的教程提供了很多种方法,而本文只讲解个人认为最简单的一种----那就是利用spring提供的Applicatio...

2018-11-16 11:45:47 2090

原创 eureka 客户端连不上注册中心

如果你确认你的配置都是对的,完全没毛病,然而eureka客户端还是连接不到注册中心(但是能连到默认的注册中心 ---- http://localhost:8761/eureka 端口),那么,请看一下是不是把配置文件中的 ‘defaultZone’ 写成了 ‘default-zone’,具体原因可以自行查看源代码:如果想搞的更明白一些,可以在下面这个地方(还是上图中的那个类)打个断点看一下:...

2018-11-16 11:19:06 3655

原创 Date和LocalDateTime之间的相互转化

值得注意的是:Date类在1.8版本中添加了2个方法,以便于实现和Java8中新的日期和时间进行转换,下图是这2个方法:从上图可以看出,旧的Date和新的时间之间的桥梁是Instant。...

2018-11-16 10:40:34 1269

原创 idea的代码统计插件

写代码这么久了才发现这款插件。。。插件名称:Statistic效果如图:

2018-09-30 12:00:48 563

原创 使用logback为springboot项目做日志记录

在resources目录下新建 logback-spring.xml 文件,内容如下:&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;configuration&gt; &lt;!-- 存放日志文件的目录 --&gt; &lt;property name="LOG_HOME" value="/var/log&q

2018-08-24 12:55:01 445

原创 Hibernate Validator 6.0.7.Final 之六(自定义约束之一)

  虽然说Bean Validation API和Hibernate Validator给我们提供了很多内置的约束(如:@NotNull, @Size等),但是,这些内置的约束总有不能满足业务需求的时候。此时,我们很自然就想到了自己定义约束。  在Hibernate Validator中,要实现自定义约束,需要经过下面三个步骤:创建一个约束注解实现一个校验器定义默认的错误消息 ...

2018-05-12 17:49:25 816

原创 设计模式之单例模式

饿汉模式/** * 饿汉模式 - 线程安全的(JVM保证在任何线程访问uniqueInstance静态变量之前,一定先创建此实例。) */public class Singleton { // JVM在加载这个类的时候马上创建此类的唯一实例 private static Singleton uniqueInstance = new Singleton(); ...

2018-05-09 09:33:51 121

原创 Hibernate Validator 6.0.7.Final 之三(方法约束之级联约束)

和bean属性约束之级联约束一样,方法约束也支持级联约束。直接看例子:Car定义public class Car { @NotNull private String manufacturer; @NotNull @Size(min = 2, max = 14) private String licensePlate; publi...

2018-04-23 16:44:41 234

原创 Hibernate Validator 6.0.7.Final 之三(声明方法约束)

本文要讲解的是怎样声明方法约束。 首先,我们要明白什么是方法约束:其实就是对方法的参数和返回值进行约束,这里说的方法包括构造方法。下面这个例子就是方法约束,更准确地说,它是参数约束。public class RentalStation { // 构造方法 public RentalStation(@NotNull String name) {} // 普通方法...

2018-04-23 16:10:58 218 3

原创 Hibernate Validator 6.0.7.Final 之二(详解Validator和ConstraintViolation)

Validator接口在bean的校验中扮演非常重要的角色。本文将详细讲解该接口。获取该接口的方法ValidatorFactory factory = Validation.buildDefaultValidatorFactory();validator = factory.getValidator();该接口中的重要方法&amp;lt;T&amp;gt; Set&amp;lt;Cons...

2018-04-23 12:50:28 9341 2

原创 Hibernate Validator 6.0.7.Final 之一(声明Bean约束之容器元素的约束)

  首先,我们需要知道什么是容器元素–其实就是List、Set、Map等。我们也知道,使用容器元素的时候,需要指定容器能容纳的数据的类型,例如,List&amp;lt;String&amp;gt;就是说这个List容器可以容纳String类型,这里的String叫做参数化类型。本文要讲的就是对参数化类型约束。   需要注意的是,如果想要将一个约束应用到参数化类型上,那么这个约束的定义中的@Target中必须包含...

2018-04-22 10:24:33 215 2

原创 Hibernate Validator 6.0.7.Final 之一(声明Bean约束之级联约束)

前几篇文章讲的校验都是针对简单属性,那么,如果一个bean的属性是一个复杂对象呢,我们该怎么校验,其实也简单,只需要在这个属性上使用@Valid注解就可以了。Person的定义public class Person { @NotNull(message = &quot;不能没有名字&quot;) @NotBlank(message = &quot;名字不能为空字符串&quot;) private...

2018-04-22 09:10:57 283

原创 Hibernate Validator 6.0.7.Final 之一(声明Bean约束之约束的继承性之二)

承接Hibernate Validator 6.0.7.Final 之一(声明Bean约束之约束的继承性之一)。本文使用field级别的约束来测试一下约束的继承性。父类public class Car { @NotNull(message = &quot;制造商不能为空&quot;) private String manufacture; @Min(value = 2, m...

2018-04-22 08:51:58 167

原创 Hibernate Validator 6.0.7.Final 之一(声明Bean约束之约束的继承性之一)

当一个类实现了某接口或者继承了某类的时候,父类型的约束将会被子类型继承。父类public class Car { private String manufacture; private int seatCount; @NotNull(message = &quot;制造商不能为空&quot;) public String getManufacture() { ...

2018-04-22 08:32:13 172

原创 Hibernate Validator 6.0.7.Final 之一(声明Bean约束之class级别的约束)

field级别的约束和property级别的约束都是针对单个属性的,而类级别的属性则是针对整个对象的,这在一个对象的多个属性之间具有相关性的情况下是非常有用的。对于下面这个类,我们应该确保乘客的数量不能多于座位的数量,也就是属性seatCount和passengers之间具有相关性,此时,class级别的约束就有了用武之地@ValidPassengerCountpublic clas...

2018-04-21 17:49:49 165

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

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