type
status
date
slug
summary
tags
category
icon
password
Property
May 10, 2023 06:22 AM
本文主要讲解私活开发的时候常用的开发技巧
一、注解是一个好帮手
(1)常用Lombok注解
@Builder
@Builder
是一个 Lombok 注解,它可以自动生成一个类的构造器,并且允许您链式调用设置该类的属性。使用
@Builder
声明的类,Lombok 会自动为其生成一个包含所有非静态和非瞬态字段的构造函数。此外,Lombok 还会为该类生成一个名为 builder()
的静态方法,该方法返回一个内部 Builder 类型的实例。 您可以使用此 Builder 类来创建该类对象。在 Builder 对象上,您可以使用 setter 方法链式设置类属性,并在最后使用 build()
方法创建对象并初始化其属性。使用
@Builder
注解后,我们可以直接通过以下方式创建 Person
对象:在上述示例中,我们使用了链式调用设置了三个属性,并在最后调用
build()
方法来创建对象。当然,我们也可以只设置其中的一些属性,或者不设置任何属性(这样生成的对象中,该类的所有属性都将是默认值)。无论如何,在使用 @Builder
注解后,代码会变得更加简洁和易读。解释一下非瞬态字段:非瞬态字段属性指的是没有使用Java中transient
关键字修饰的属性。在Java中,被transient
修饰的属性将不会被序列化,也就是说这些属性的值不会被保存在内存中,而是只存在于对象的生命周期中,因此这些属性也被称之为瞬态属性。相反,如果一个属性没有使用transient
关键字修饰,则表示这个属性是非瞬态的,它的值将随着对象的创建而被分配内存空间,并在对象的整个生命周期中一直存在。
@NoArgsConstructor
@Data
@AllArgsConstructor
@UtilityClass
@UtilityClass
是一个 Lombok 注解,它可以在编译时自动生成以下内容:(1)将类声明为
final
和 abstract
。(2)生成一个私有的无参构造函数。
(3)将所有非静态方法声明为静态方法。
这个注解通常用于创建工具类或者帮助类。使用该注解可以省略一些样板代码,并提供更加简洁明了的代码结构。例如:
使用
@UtilityClass
注解来定义字符串相关的工具类,可以使得所有方法均为静态方法,而且也不需要手动添加单例模式保证只有一个实例,从而更加方便地进行调用。@SneakyThrows
@SneakyThrows
是 Java 中的一个注解,它可以让开发者在方法中抛出受检查异常(checked exception)时无需显式地声明 throws
子句,从而简化了代码编写和调用的过程。在使用 @SneakyThrows
注解后,当方法中抛出受检查异常时,Java 会自动捕获并将其转换为非受检查异常(unchecked exception),并且不需要在方法声明中显式地指定该异常类型。这样,使用该方法的程序员就可以像处理普通异常一样来处理该异常。需要注意的是,尽管 @SneakyThrows
可以减少代码量和提高开发效率,但过度使用该注解可能会掩盖潜在的问题,因此建议仅在必要情况下使用该注解。@RequiredArgsConstructor
@RequiredArgsConstructor
是一个 Lombok 注解,它可以帮助简化构造函数的编写。当你在类中使用 @RequiredArgsConstructor
注解时,Lombok 会自动生成一个包含所有非 final 字段的构造函数。例如,如果我们有如下代码:
那么 Lombok 会为我们自动生成如下构造函数:
需要注意的是,在使用
@RequiredArgsConstructor
注解时,所有的 final
字段都会被自动包含在生成的构造函数中,但如果有其他非 final
字段,则需要手动添加到构造函数中。如果希望将所有字段都包含在构造函数中(包括非 final 字段),可以使用 Lombok 的 @AllArgsConstructor
注解。(2)常用SpringBoot注解
@ConditionalOnProperty
注解
@ConditionalOnProperty
是Spring Boot中的一个条件注解,用于在应用启动时根据配置文件中指定的属性值来判断是否需要加载某个类或者配置。该注解可以用于以下场景:
(1)当指定的配置项存在且值为true时,才会创建被注解的bean
(2)当指定的配置项不存在时,默认也会创建被注解的bean
(3)当指定的配置项存在但值不等于指定值时,不创建被注解的bean
这个注解非常实用,可以根据具体的需求来进行配置,在某些情况下可以避免不必要的资源浪费。比如以下代码中的例子:以下代码来自Github-Novel项目
在上面代码中
有关常私活常用开发技巧的问题,欢迎您在底部评论区留言,一起交流~
- 作者:fntp
- 链接:https://polofox.com/article/tech-other-note-2
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章