自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 资源 (8)
  • 问答 (12)
  • 收藏
  • 关注

原创 eclipse 相关的博客目录

一、Eclipse 从 Git 上导入项目二、Eclipse 修改 Tomat 的部署路径三、eclipse 设置是否自动切换到 Debug 视图模式四、解决 eclipse Maven 工程中 resources 目录下创建文件夹所显示样式不是文件夹,而是包的图标样式问题五、使用 Eclipse 上传项目至 Git六、eclipse run install 问题一:Perhaps you are running on a JRE rather than a JDK七、eclipse 项目分类管

2020-07-16 16:20:01 184 5

原创 最全的 lombok 注解详情(随着版本不定时更新)

一、引入依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> <!-- Spring Boot 项目此部分可以不写 --></dependency>二、注解的使用(所有的注解属性非必选)@Getter、@Se

2020-07-13 22:02:21 8743 8

原创 Maven 指定 JDK 版本

Maven 指定 JDK 版本

2022-08-19 16:55:25 2441 1

原创 MySQL 分组排序取最后

MySQL 分组排序取最后

2022-07-13 16:55:01 1937

原创 ubuntu 安装 Redis

一、下载 Redis 压缩包,wget http://download.redis.io/releases/redis-5.0.14.tar.gz也可以去官网下载别的版本 https://redis.io二、解压文件,tar -zxvf redis-5.0.14.tar.gz三、编译安装(使用压缩包的方式需要编译安装),进入目录输入 make将 bin 目录安装到当前目录下,当然也可以直接使用 src 下的脚本(可省略)四、启动服务端,./redis-server &(&am

2022-01-24 09:20:09 3661

原创 Vmware 之 ubuntu 网络设置自动分配 IP 地址

简简单单的几个步骤帮你解决网络 ping 不通的情况(内附最干净的虚拟机以及 ssh 客户端工具)一、选中虚拟机 → 点击虚拟机 → 点击设置二、选择网络适配器,更改为桥接模式三、启动虚拟机,输入 sudo passwd root 设置 root 密码四、切换 root 账号,输入 su root,输入密码五、打开远程 ssh,输入 sudo apt-get install openssh-server六、开启 root 登录权限并重启服务,输入 sed -i ‘s/prohibit-

2022-01-20 10:41:58 3273

原创 lombok 基础注解之 @Builder.ObtainVia

最全的 lombok 注解详情(随着版本不定时更新),lombok 基础注解之 @Builder一、注解介绍表示变量从什么地方获取值,只有当 toBuilder = true 时才生效二、属性介绍field:表示字段赋值时从某个字段上取值,对应的字段必须存在method:表示字段赋值时从某个方法上取值,对应的方法必须存在isStatic:表示 method 是否静态三、实战演练@Builder(toBuilder = true)public class 吴宣仪 { private S

2022-01-18 11:04:14 2698

原创 源码分析设计模式之代理模式(四、动态代理模式之 CGLIB 动态代理)

一、CGLIB 动态代理静态代理和 JDK 动态代理模式有个相同的特点就是都是依靠接口实现的,然而并不是所有的类都有接口的,这个时候就用不了 JDK 动态代理了,CGLIB 动态代理就可以闪亮登场了CGLIB 动态大力采用了非常底层的字节码技术,其原理是通过字节码技术在内存中为一个类创建子类,并在子类中采用方法拦截的方式拦截所有父类方法的调用,顺势织入横切逻辑,实现方法增强二、CGLIB 动态代理实现步骤查找 A 类上的所有非 final 的 public 类型的方法定义将这些方法的定义转换成字

2021-12-27 16:05:35 226

原创 源码分析七大设计原则之迪米特法则

源码分析之七大设计原则一、迪米特法则定义:迪米特法则又叫最少知道原则,通俗的来讲:就是一个类对自己依赖的类知道的越少越好对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的 public 方法,不对外泄漏任何信息迪米特法则还有一个更简单的定义:只与直接的朋友通信首先来解释一下什么是直接的朋友:每个对象都会与其他对象有耦合关系,只要两个对象之间有耦合关系,我们就说这两个对象之间是朋友关系耦合的方式很多,依赖、关联、组合、聚合等等,其中,我们称出现成员变量、方法参数、

2021-12-20 09:00:35 146

原创 Maven install 跳过测试类

项目在添加了测试类后 install 出现了问题,提示错误:Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test这个时候只需要跳过测试类就可以了,一段小小的代码就可以完美解决了,在 pom 文件中添加<build> <plugins> <plugin> <groupId>org.springframewo

2021-12-20 08:54:26 711 2

原创 源码分析七大设计原则之合成复用原则(Composite Reuse Principle)

一、合成复用原则(Composite Reuse Principle)定义:就是说要尽量的使用合成和聚合,而不是继承关系达到复用的目的该原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分:新的对象通过向这些对象的委派达到复用已有功能的目的二、合成复用与继承复用的比较合成复用优点新对象存取成分对象的唯一方法是通过成分对象的接口这种复用是黑箱复用,因为成分对象的内部细节是新对象所看不见的这种复用支持包装这种复用所需的依赖较少每一个新的类可以将焦点集中在一个任务上这种复用可

2021-12-19 09:00:00 263

原创 源码分析七大设计原则之接口隔离原则(Interface Segregation Principle)

一、接口隔离原则(Interface Segregation Principle)定义:建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少即:为各个类建立专用的接口,而不要试图去建立一个庞大的接口供所有依赖它的类去调用在程序设计中,依赖几个专用的接口要比依赖一个综合的接口更灵活接口是设计是对外部设定的 ’ 契约 ',通过分散定义多个接口,可以预防外来变更的扩散,提高系统的灵活性和可维护性说到这里,很多人会觉的接口隔离原则跟单一职责原则很相似,其实不然。其一:单一职责原则原注重

2021-12-17 12:00:00 208

原创 源码分析七大设计原则之依赖倒置原则(Dependence Inversion Principle)

一、依赖倒置原则(Dependence Inversion Principle)定义:高层模块不应该依赖低层模块,二者都应该依赖于抽象;抽象不应该依赖细节;细节应该依赖抽象。即针对接口编程,不要针对实现编程依赖倒置原则其实就是谁也不要依靠谁,除了约定的接口,大家都可以灵活自如。依赖倒置可以说是面向对象设计的标志如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计,反之那就是过程化的设计了如果设计的各个部件或类相互依赖,这样就是耦

2021-12-16 12:00:00 166

原创 源码分析七大设计原则之里氏替换原则(Liskov Substitution Principle)

一、里氏替换原则(Liskov Substitution Principle)定义:子类型必须能够替换掉它们的父类型。一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,且它察觉不出父类对象和子类对象的区别。也就是说,子类对象可以随时随地的替换父类对象,并且替换完以后,语法不会报错,业务逻辑不会出现问题。只有当子类可以替换掉父类,软件功能不受影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为,正是有里氏代换原则,使得继承复用成为了可能。也正是由于子类型的可替换性才使得使用父类类型

2021-12-15 12:00:00 291

原创 源码分析七大设计原则之开闭原则(Open Close Principle)

一、开闭原则(Open Close Principle)定义:软件实体应当对扩展开放,对修改关闭,即:软件系统中包含的各种组件,例如模块(Modules)、类(Classes)以及功能(Functions)等,应该在不修改现有代码的基础上,去扩展新功能。开闭原则中的 开,是指对于组件功能的扩展是开放的,允许对其进行功能扩展的;开闭原则中的 闭,是指对于代码的修改是封闭的,即不应该修改原有的代码二、源码演练反例代码,问题:每增加一种图形,就需要修改 GraphicEditor 类。这样就违背了对扩展开放

2021-12-14 12:00:00 723

原创 源码分析七大设计原则之单一职责原则(Single Responsibility Principle)

单一职责原则(Single Responsibility Principle)定义:不要存在多于一个导致类变更的原因,即:一个类只负责一项职责,仅有一个引起它变化的原因。其核心思想:解耦和增强内聚性(高内聚,低耦合)一个类被修改的几率很大,因此应该专注于单一的功能。如果把多个功能放在同一个类中,功能之间可能就形成了关联,改变其中一个功能,有可能会影响另一个功能,这时就需要新一轮的测试来避免可能出现的问题。另外,多个职责耦合在一起,会影响复用性。在软件编程中,谁也不希望因为修改了一个功能导致其他的功能发

2021-12-13 09:06:57 232

原创 lombok 实验性注解之 @StandardException

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍定义异常类,它会最多生成四个构造函数:无参、消息、异常、消息 + 异常,当你手写其中的构造函数后注解将不会重复生成二、属性介绍access:定义构造函数的访问修饰符共有 PUBLIC、MODULE、PROTECTED、PACKAGE、PRIVATE、NONEMODULE 是 Java 9 的新特性,NONE 表示不生成 getter 方法,即停用注解功能三、实战演练@StandardException(access = Ac

2021-12-06 13:42:28 662 2

原创 Vmware 之 CenterOS7 网络设置自动分配 IP 地址

简简单单的几个步骤帮你解决网络 ping 不通的情况一、选中虚拟机 → 点击虚拟机 → 点击设置二、选择网络适配器,更改为桥接模式三、启动虚拟机,输入 ip addr 查看网络配置文件名称四、输入命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33,编辑网络配置文件,其中的 ens33 为上一步的查看的名称五、修改 ONBOOT 为 yes六、输入命令 /etc/init.d/network restart,重启网络七、输入 ip add

2021-11-30 09:16:58 1692

原创 lombok 实验性注解之 @SuperBuilder

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍@Builder 并不支持对基类成员属性的构造,而 @SuperBuilder 就是为了解决这个问题而产生的,算是 @Builder 的升级版二、属性介绍builderMethodName:创建内部静态类的方法名,默认值为 builderbuildMethodName:创建实体类的方法名,默认值为 buildtoBuilder:设置为 true 可以对这个对象进行拷贝生成新的对象,可以再修改,默认为 falsesetterPre

2021-11-27 12:00:00 11459

原创 lombok 实验性注解之 @UtilityClass

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,将类标记为 final,并且类、内部类中的方法、字段都标记为 static二、实战演练@UtilityClasspublic class 章泽天 { public String name; public int age() { return 18; } public static void main(String[] args) { 章泽天.age(); String name = 章泽天.nam

2021-11-26 12:00:00 4726

原创 lombok 实验性注解之 @Tolerate

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍实现对冲突的兼容,官方解释:使任何方法或者构造函数让 lombok 假装它不存在,作用于方法上,没什么大用,可以配合 @Builder 使用二、使用场景使用 Lombok 能够减少程序员的重复工作提高工作效率,而 Lombok 的注解基本是基于标准的(如,标准的 Builder 模式),而实际开发的时候有时候为了实现某些能力会对标准实现做一些变形,而这个时候 Lombok 的标准实现就会无法满足需求使用 @Builder 对一个 DT

2021-11-25 12:00:00 3807

原创 lombok 实验性注解之 @FieldNameConstants

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,生成一个包含所有成员变量的内部类或者内部枚举,内部类中每个字段值即为字段名,并且内部类字段值不可变二、属性介绍(非必选)value:设置内部类或者枚举的访问控制符,默认为 public共有 PUBLIC、MODULE、PROTECTED、PACKAGE、PRIVATE、NONEMODULE 是 Java 9 的新特性,NONE 表示不生成 setter 方法,即停用注解功能asEnum:是否为枚举类型,默认 false

2021-11-24 12:00:00 3272

原创 lombok 实验性注解之 @NonFinal

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类、变量,表示变量不加 final二、实战演练public class 祝绪丹 { @NonFinal String age; @NonFinal final String name = "祝绪丹"; // 必须初始化}三、温馨提示@NonFinal 主要配合 @FieldDefaults 使用,两者 @NonFinal 优先。如果手写访问修饰符,则访问修饰符优先......

2021-11-23 12:00:00 711

原创 lombok 实验性注解之 @Helper

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于方法内部类,使内部类中的方法暴露在外面可以被直接调用二、实战演练public class 迪丽热巴 { int someMethod(int arg1) { int localVar = 5; @Helper class Helpers { int helperMethod(int arg) { return arg + localVar; } } return helperMeth

2021-11-22 12:00:00 637 2

原创 lombok 实验性注解之 @FieldDefaults

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,定义变量的访问修饰符以及是否加 final二、属性介绍(两者必须有其一)level:指定变量的访问修饰符且不能为 NONE,默认值:NONE共有 PUBLIC、MODULE、PROTECTED、PACKAGE、PRIVATE、NONEmakeFinal:是否加 final,默认 false,如果为 true 则所有的实例变量必须初始化三、实战演练@FieldDefaults(level = AccessLevel.

2021-11-19 12:00:00 2556

原创 lombok 实验性注解之 @ExtensionMethod

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,向类中添加方法,无需创建新的子类,变量与方法参数、返回值类型必须一样(即使是基础类型与包装类也不行)二、属性介绍(非必选)value:指定添加哪个类的方法,类名.classsuppressBaseMethods:如果为 false,基础类型不能调用方法,默认为 true如果 suppressBaseMethods = false1、变量与方法参数、返回值的类型不能为基础类型2、自定义方法不可与引用对象的方法重名(无法

2021-11-18 12:00:00 1181

原创 lombok 实验性注解之 @Delegate

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于容器变量,为该变量生成一堆常用的方法,这些方法都是容器中的方法二、属性介绍(非必选)types:指定代理方法的类、值为 类名.classexcludes:排除指定类,和 types 相反三、实战演练public class 李沁 { @Delegate private List<String> list = new ArrayList<String>(); public static v

2021-11-17 09:16:29 4632 3

原创 lombok 实验性注解之 @Accessors

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍类似于 @Builder 支持链式调用,需要配合 @Setter、@Getter 等注解使用,作用于类、变量二、属性介绍fluent:设置为 true 时,chain 默认为 true,setter / getter 方法名即为字段名,默认 falsechain:设置为 true 时,可以链式调用,即 setter 方法返回 this。默认 falseprefix:指定前缀,生成 getter / setter 方法会去掉指定的前

2021-11-15 10:48:59 520

原创 lombok 外部注解之日志注解

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,生成对应的 log 对象,用于记录日志,共有七个注解:@CommonsLog:org.apache.commons.logging.Log@Log:java.util.logging.Logger@JBossLog:org.jboss.logging.Logger@Log4j:org.apache.log4j.Logger@Log4j2:org.apache.logging.log4j.Logger@Slf4j:org

2021-11-12 16:36:19 1731

原创 lombok 基础注解之 @With

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,生成多个 with + 变量名的方法(个数为所有成员变量,不包含 @NonNull),作用于变量,生成 with + 变量名的方法返回当前对象,需要提供全参(不包含静态变量)构造方法二、属性介绍value:设置 with 方法的访问修饰符共有 PUBLIC、MODULE、PROTECTED、PACKAGE、PRIVATE、NONEMODULE 是 Java 9 的新特性,NONE 表示不生成 with 方法,即停用注解

2021-11-12 11:39:37 2512

原创 lombok 基础注解之 @Value

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,使所有的成员变量都是 final 的,是以下注解的集合:@ToString @EqualsAndHashCode @Getter @RequiredArgsConstructor二、属性介绍staticConstructor:使生成的构造方法私有化并且生成一个返回类型为当前对象的无参静态方法,方法名为 staticConstructor 值三、实战演练@Value(staticConstructor = "newIn

2021-11-06 12:00:00 2717

原创 lombok 基础注解之 @val

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类、变量,主要用于声明变量的类型,注解将从初始化程序表达式中推断类型,生成的变量是 final 不可以变二、实战演练@valpublic class 杨幂 { public static void main(String[] args) { val name = "杨幂"; System.out.println(name); }}编译后@valpublic class 杨幂 { public stat

2021-11-05 13:34:24 722

原创 lombok 基础注解之 @ToString

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,覆盖默认的 toString() 方法,输出格式:ClassName(fieldName=fieleValue, fieldName1=fieleValue)二、属性介绍includeFieldNames:在打印时是否包括字段的名称,默认为 trueexclude:通过该属性可以排除某些字段,默认为空of:过该属性可以限定显示某些字段,默认打印非静态字段当 of 属性和 exclude 属性同时出现时,of 属性优先

2021-11-04 09:45:34 7325

原创 lombok 基础注解之 @Synchronized

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于方法,可以替换 synchronize 关键字或 lock 锁二、属性介绍value:指定锁对象,当锁对象不存在时,则编译不通过,默认为 “”三、实战演练public class 唐嫣 { public final String NAME = "唐嫣"; @Synchronized(value = "NAME") // 对应字段 NAME public void name() { System.out.pri

2021-11-03 10:43:07 1742

原创 lombok 基础注解之 @SneakyThrows

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于方法,对异常进行捕捉并抛出二、属性介绍value:指定异常类型,默认为 Throwable.class三、实战演练/** * value:指定异常类型,默认为 Throwable.class */public class 刘诗诗 { @SneakyThrows(Exception.class) private static void shishi() { throw new Exception("抛出异常")

2021-11-02 10:08:21 894 2

原创 lombok 基础注解之 @Singular

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于集合字段,需要配合 @Builder 使用使用 @Singular 注解一个集合字段(如果没有指定 value 属性值,那么集合字段名需要是复数形式),会生成两个添加元素方法一个向集合添加单个元素(方法名:集合字段名的单数形式 / value 属性值)一个将另一个集合的所有元素添加到集合中(方法名:集合字段名)还生成了 clear 方法(方法名:clear + 集合字段名,驼峰命名)。 这些 singular 构建器相对而言

2021-11-01 13:53:01 4970

原创 lombok 基础注解之 @Setter

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,生成该类所有的实例变量的 setter 方法。作用于变量,生成该变量的 setter 方法二、属性介绍value:设置 setter 方法访问控制符,默认为 public共有 PUBLIC、MODULE、PROTECTED、PACKAGE、PRIVATE、NONEMODULE 是 Java 9 的新特性,NONE 表示不生成 setter 方法,即停用注解功能onMethod:列出的所有注解都放在生成的方法上JDK

2021-10-30 10:23:59 5100

原创 lombok 基础注解之 @RequiredArgsConstructor

最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,用于生成包含 final 和 @NonNull 注解的成员变量的构造方法二、属性介绍staticName:使生成的构造方法是私有的并且生成一个参数为 final 变量和 @NonNull 注解变量,返回类型为当前对象的静态方法,方法名为 staticName 值access:设置构造方法的访问修饰符,如果设置了 staticName,那么将设置静态工厂方法的访问修饰符的静态工厂方法共有 PUBLIC、MODULE、PR

2021-10-29 10:27:41 24018 3

原创 lombok 基础注解之 @NonNull

最全的 lombok 注解详情(随着版本不定时更新)一、实战演示@Setter@Getterpublic class 马凡舒 { @NonNull private String name;}编译后public class 马凡舒 { @NonNull private String name; public void setName(@NonNull String name) { if (name == null) throw new NullPo

2021-10-28 10:58:24 3300

原创 lombok 基础注解之 @NoArgsConstructor

最全的 lombok 注解详情(随着版本不定时更新)一、属性介绍staticName:生成的构造方法是私有的,并且生成一个返回实体类且方法名为 staticName 值的无参数的静态工厂方法onConstructor:列出的所有注解都放在生成的构造方法上JDK 7 之前的写法是 onConstructor = @__({@Deprecated}),而 JDK 8 之后的写法是 onConstructor_ = {@Deprecated}access:设置构造方法的访问修饰符,如果设置了 stat

2021-10-27 10:09:30 27968 3

Center OS7 最干净的虚拟机

Center OS7 最干净的虚拟机

2021-11-30

SoapUI-x64-5.1.3.zip

soapui 一款 webservice 客户端工具

2021-08-26

WinSCP-5.15.4-Setup.zip

界面简洁的 ftp 客户端工具

2021-08-26

Notepad++.zip

免安装的文本编辑器

2021-08-26

finalshell_install.zip

一款集 ssh 和 ftp 与一身的远程连接工具

2021-08-26

Navicat Premium 12.zip

免安装的 Navicat 数据库客户端

2021-08-26

putty ssh 连接工具

一个免安装,打开即可用的超小型 ssh 客户端工具

2021-08-26

jar 包反编译工具

Java 开发过程中,有时候需要反编译一些 jar 包,学习其对应的代码,本工具可以对 jar 文件进行反编译,方便查看 jar 的具体内容 内附说明书,解压即可

2020-07-20

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

TA关注的人

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