- 博客(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
195
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
8972
8
原创 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
3807
原创 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
3394
原创 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
2921
原创 源码分析设计模式之代理模式(四、动态代理模式之 CGLIB 动态代理)
一、CGLIB 动态代理静态代理和 JDK 动态代理模式有个相同的特点就是都是依靠接口实现的,然而并不是所有的类都有接口的,这个时候就用不了 JDK 动态代理了,CGLIB 动态代理就可以闪亮登场了CGLIB 动态大力采用了非常底层的字节码技术,其原理是通过字节码技术在内存中为一个类创建子类,并在子类中采用方法拦截的方式拦截所有父类方法的调用,顺势织入横切逻辑,实现方法增强二、CGLIB 动态代理实现步骤查找 A 类上的所有非 final 的 public 类型的方法定义将这些方法的定义转换成字
2021-12-27 16:05:35
245
原创 源码分析七大设计原则之迪米特法则
源码分析之七大设计原则一、迪米特法则定义:迪米特法则又叫最少知道原则,通俗的来讲:就是一个类对自己依赖的类知道的越少越好对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的 public 方法,不对外泄漏任何信息迪米特法则还有一个更简单的定义:只与直接的朋友通信首先来解释一下什么是直接的朋友:每个对象都会与其他对象有耦合关系,只要两个对象之间有耦合关系,我们就说这两个对象之间是朋友关系耦合的方式很多,依赖、关联、组合、聚合等等,其中,我们称出现成员变量、方法参数、
2021-12-20 09:00:35
186
原创 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
762
2
原创 源码分析七大设计原则之合成复用原则(Composite Reuse Principle)
一、合成复用原则(Composite Reuse Principle)定义:就是说要尽量的使用合成和聚合,而不是继承关系达到复用的目的该原则就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分:新的对象通过向这些对象的委派达到复用已有功能的目的二、合成复用与继承复用的比较合成复用优点新对象存取成分对象的唯一方法是通过成分对象的接口这种复用是黑箱复用,因为成分对象的内部细节是新对象所看不见的这种复用支持包装这种复用所需的依赖较少每一个新的类可以将焦点集中在一个任务上这种复用可
2021-12-19 09:00:00
303
原创 源码分析七大设计原则之接口隔离原则(Interface Segregation Principle)
一、接口隔离原则(Interface Segregation Principle)定义:建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少即:为各个类建立专用的接口,而不要试图去建立一个庞大的接口供所有依赖它的类去调用在程序设计中,依赖几个专用的接口要比依赖一个综合的接口更灵活接口是设计是对外部设定的 ’ 契约 ',通过分散定义多个接口,可以预防外来变更的扩散,提高系统的灵活性和可维护性说到这里,很多人会觉的接口隔离原则跟单一职责原则很相似,其实不然。其一:单一职责原则原注重
2021-12-17 12:00:00
233
原创 源码分析七大设计原则之依赖倒置原则(Dependence Inversion Principle)
一、依赖倒置原则(Dependence Inversion Principle)定义:高层模块不应该依赖低层模块,二者都应该依赖于抽象;抽象不应该依赖细节;细节应该依赖抽象。即针对接口编程,不要针对实现编程依赖倒置原则其实就是谁也不要依靠谁,除了约定的接口,大家都可以灵活自如。依赖倒置可以说是面向对象设计的标志如果编写时考虑的都是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计,反之那就是过程化的设计了如果设计的各个部件或类相互依赖,这样就是耦
2021-12-16 12:00:00
206
原创 源码分析七大设计原则之里氏替换原则(Liskov Substitution Principle)
一、里氏替换原则(Liskov Substitution Principle)定义:子类型必须能够替换掉它们的父类型。一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,且它察觉不出父类对象和子类对象的区别。也就是说,子类对象可以随时随地的替换父类对象,并且替换完以后,语法不会报错,业务逻辑不会出现问题。只有当子类可以替换掉父类,软件功能不受影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为,正是有里氏代换原则,使得继承复用成为了可能。也正是由于子类型的可替换性才使得使用父类类型
2021-12-15 12:00:00
335
原创 源码分析七大设计原则之开闭原则(Open Close Principle)
一、开闭原则(Open Close Principle)定义:软件实体应当对扩展开放,对修改关闭,即:软件系统中包含的各种组件,例如模块(Modules)、类(Classes)以及功能(Functions)等,应该在不修改现有代码的基础上,去扩展新功能。开闭原则中的 开,是指对于组件功能的扩展是开放的,允许对其进行功能扩展的;开闭原则中的 闭,是指对于代码的修改是封闭的,即不应该修改原有的代码二、源码演练反例代码,问题:每增加一种图形,就需要修改 GraphicEditor 类。这样就违背了对扩展开放
2021-12-14 12:00:00
773
原创 源码分析七大设计原则之单一职责原则(Single Responsibility Principle)
单一职责原则(Single Responsibility Principle)定义:不要存在多于一个导致类变更的原因,即:一个类只负责一项职责,仅有一个引起它变化的原因。其核心思想:解耦和增强内聚性(高内聚,低耦合)一个类被修改的几率很大,因此应该专注于单一的功能。如果把多个功能放在同一个类中,功能之间可能就形成了关联,改变其中一个功能,有可能会影响另一个功能,这时就需要新一轮的测试来避免可能出现的问题。另外,多个职责耦合在一起,会影响复用性。在软件编程中,谁也不希望因为修改了一个功能导致其他的功能发
2021-12-13 09:06:57
262
原创 lombok 实验性注解之 @StandardException
最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍定义异常类,它会最多生成四个构造函数:无参、消息、异常、消息 + 异常,当你手写其中的构造函数后注解将不会重复生成二、属性介绍access:定义构造函数的访问修饰符共有 PUBLIC、MODULE、PROTECTED、PACKAGE、PRIVATE、NONEMODULE 是 Java 9 的新特性,NONE 表示不生成 getter 方法,即停用注解功能三、实战演练@StandardException(access = Ac
2021-12-06 13:42:28
709
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
1779
原创 lombok 实验性注解之 @SuperBuilder
最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍@Builder 并不支持对基类成员属性的构造,而 @SuperBuilder 就是为了解决这个问题而产生的,算是 @Builder 的升级版二、属性介绍builderMethodName:创建内部静态类的方法名,默认值为 builderbuildMethodName:创建实体类的方法名,默认值为 buildtoBuilder:设置为 true 可以对这个对象进行拷贝生成新的对象,可以再修改,默认为 falsesetterPre
2021-11-27 12:00:00
12326
原创 lombok 实验性注解之 @Tolerate
最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍实现对冲突的兼容,官方解释:使任何方法或者构造函数让 lombok 假装它不存在,作用于方法上,没什么大用,可以配合 @Builder 使用二、使用场景使用 Lombok 能够减少程序员的重复工作提高工作效率,而 Lombok 的注解基本是基于标准的(如,标准的 Builder 模式),而实际开发的时候有时候为了实现某些能力会对标准实现做一些变形,而这个时候 Lombok 的标准实现就会无法满足需求使用 @Builder 对一个 DT
2021-11-25 12:00:00
4243
原创 lombok 实验性注解之 @FieldNameConstants
最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,生成一个包含所有成员变量的内部类或者内部枚举,内部类中每个字段值即为字段名,并且内部类字段值不可变二、属性介绍(非必选)value:设置内部类或者枚举的访问控制符,默认为 public共有 PUBLIC、MODULE、PROTECTED、PACKAGE、PRIVATE、NONEMODULE 是 Java 9 的新特性,NONE 表示不生成 setter 方法,即停用注解功能asEnum:是否为枚举类型,默认 false
2021-11-24 12:00:00
3412
原创 lombok 实验性注解之 @NonFinal
最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类、变量,表示变量不加 final二、实战演练public class 祝绪丹 { @NonFinal String age; @NonFinal final String name = "祝绪丹"; // 必须初始化}三、温馨提示@NonFinal 主要配合 @FieldDefaults 使用,两者 @NonFinal 优先。如果手写访问修饰符,则访问修饰符优先......
2021-11-23 12:00:00
743
原创 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
669
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
2644
原创 lombok 实验性注解之 @ExtensionMethod
最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,向类中添加方法,无需创建新的子类,变量与方法参数、返回值类型必须一样(即使是基础类型与包装类也不行)二、属性介绍(非必选)value:指定添加哪个类的方法,类名.classsuppressBaseMethods:如果为 false,基础类型不能调用方法,默认为 true如果 suppressBaseMethods = false1、变量与方法参数、返回值的类型不能为基础类型2、自定义方法不可与引用对象的方法重名(无法
2021-11-18 12:00:00
1284
原创 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
4856
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
559
原创 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
1766
原创 lombok 基础注解之 @With
最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,生成多个 with + 变量名的方法(个数为所有成员变量,不包含 @NonNull),作用于变量,生成 with + 变量名的方法返回当前对象,需要提供全参(不包含静态变量)构造方法二、属性介绍value:设置 with 方法的访问修饰符共有 PUBLIC、MODULE、PROTECTED、PACKAGE、PRIVATE、NONEMODULE 是 Java 9 的新特性,NONE 表示不生成 with 方法,即停用注解
2021-11-12 11:39:37
2843
原创 lombok 基础注解之 @Value
最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,使所有的成员变量都是 final 的,是以下注解的集合:@ToString @EqualsAndHashCode @Getter @RequiredArgsConstructor二、属性介绍staticConstructor:使生成的构造方法私有化并且生成一个返回类型为当前对象的无参静态方法,方法名为 staticConstructor 值三、实战演练@Value(staticConstructor = "newIn
2021-11-06 12:00:00
2805
原创 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
785
原创 lombok 基础注解之 @ToString
最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,覆盖默认的 toString() 方法,输出格式:ClassName(fieldName=fieleValue, fieldName1=fieleValue)二、属性介绍includeFieldNames:在打印时是否包括字段的名称,默认为 trueexclude:通过该属性可以排除某些字段,默认为空of:过该属性可以限定显示某些字段,默认打印非静态字段当 of 属性和 exclude 属性同时出现时,of 属性优先
2021-11-04 09:45:34
7669
原创 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
1853
原创 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
1020
2
原创 lombok 基础注解之 @Singular
最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于集合字段,需要配合 @Builder 使用使用 @Singular 注解一个集合字段(如果没有指定 value 属性值,那么集合字段名需要是复数形式),会生成两个添加元素方法一个向集合添加单个元素(方法名:集合字段名的单数形式 / value 属性值)一个将另一个集合的所有元素添加到集合中(方法名:集合字段名)还生成了 clear 方法(方法名:clear + 集合字段名,驼峰命名)。 这些 singular 构建器相对而言
2021-11-01 13:53:01
5662
原创 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
5224
原创 lombok 基础注解之 @RequiredArgsConstructor
最全的 lombok 注解详情(随着版本不定时更新)一、注解介绍作用于类,用于生成包含 final 和 @NonNull 注解的成员变量的构造方法二、属性介绍staticName:使生成的构造方法是私有的并且生成一个参数为 final 变量和 @NonNull 注解变量,返回类型为当前对象的静态方法,方法名为 staticName 值access:设置构造方法的访问修饰符,如果设置了 staticName,那么将设置静态工厂方法的访问修饰符的静态工厂方法共有 PUBLIC、MODULE、PR
2021-10-29 10:27:41
24272
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
3438
原创 lombok 基础注解之 @NoArgsConstructor
最全的 lombok 注解详情(随着版本不定时更新)一、属性介绍staticName:生成的构造方法是私有的,并且生成一个返回实体类且方法名为 staticName 值的无参数的静态工厂方法onConstructor:列出的所有注解都放在生成的构造方法上JDK 7 之前的写法是 onConstructor = @__({@Deprecated}),而 JDK 8 之后的写法是 onConstructor_ = {@Deprecated}access:设置构造方法的访问修饰符,如果设置了 stat
2021-10-27 10:09:30
28246
3
jar 包反编译工具
2020-07-20
Spring Cloud 保证一致性问题
2023-10-14
Mysql 或者 Oracle 支持列式存储吗
2022-02-11
这什么破网站,都能编译运行出来,特喵的编译不通过
2022-01-06
同一段代码同一个参数,跑出了不同的结果,是谁的问题
2022-01-06
maven install 为什么要跳过测试
2021-12-21
使用 expect 传输 jar 包,但是文件损坏
2021-08-12
被@Autowired注解的变量类是不是一定要在类上加@Component之类的注解
2021-06-17
liunx 检查端口命令的区别
2020-08-28
SpringBoor之json结果返回报错
2020-06-19
Java之RestController
2020-06-18
请完成一个简单的算法编程。
2019-12-08
Java 使用for循环和数学方法实现
2019-10-28
TA创建的收藏夹 TA关注的收藏夹
TA关注的人