美文网首页
【spring0】Developer Tools

【spring0】Developer Tools

作者: 前端菜篮子 | 来源:发表于2020-07-19 16:42 被阅读0次

勾选好对应的选项好,创建工程时即会在pom.xml配置好对应的jar包

image.png

Spring Boot DevTools

转:SpringBoot配置devtools实现热部署

devtools的深层原理:使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载会更改的类,称为restart ClassLoader,这样在有代码更改的时候,原来的restart ClassLoader 被丢弃,重新创建一个restart ClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间。


lombok

转:SpringBoot中lombok使用

想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写,以期方便使用的方法;在使用Lombok之后,将由其来自动帮你实现代码生成,注意,其是 在运行过程中,帮你自动生成的 。就是说,将极大减少你的代码总量。

SpringBoot中使用lombok

  1. 添加依赖
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.16.10</version>
</dependency>

  1. 编写一个实体类 User,使用@Data注解
@Data
public class User {  
 private String name;  
 private int age;
}

  1. 编写测试方法,测试@Data的作用
@Test
public void testUser(){  
  User user = new User();  
  user.setName("AnyCode");  
  user.setAge(20);  
  System.err.println(user.toString());
}

输入图片说明

lombok的注解介绍

@NonNull : 
让你不在担忧并且爱上NullPointerException

@CleanUp : 
自动资源管理:不用再在finally中添加资源的close方法

@Setter/@Getter : 自动生成set和get方法

@ToString : 自动生成toString方法

@EqualsAndHashcode : 
从对象的字段中生成hashCode和equals的实现

@NoArgsConstructor/
@RequiredArgsConstructor/
@AllArgsConstructor
自动生成构造方法

@Value : 用于注解final类

@Builder : 产生复杂的构建器api类

@SneakyThrows : 异常处理(谨慎使用)

@Synchronized : 同步方法安全的转化

@Getter(lazy=true) :

@Log : 支持各种logger对象,使用时用对应的注解,如:@Log4j

@Data : 所有的注解我们都可以使用这一个注解来完成

推荐使用技巧

  • 在 Bean / Entity 类上使用 @Data 注解。
  • 需要使用 Log 对象的地方使用 @Log4j(依项目日志框架决定)。
  • 注意:lombok 的注解不能被继承。
  • 如果你不想将注解用在全部的成员变量上,而是仅仅部分变量上,那么你可以在具体的变量上添加注解即可

IDEA中使用lombok

如果想让lombok生效我们还需要针对idea工具进行插件的安装,下面我们按照顺序打开Idea配置

File > Settings > Plugins > Browse repositories... > 输入lombok,插件就会被自动检索出来,如下图所示:

输入图片说明

我的工具已经安装了该插件,所有在右侧是没有任何按钮的,如果你的工具没有安装该插件,

右侧会有一个绿色的按钮,按钮的内容则是Install,点击安装后重启Idea就可以了。

缺点:

  • 对队友不友好,需要添加依赖和IDE插件,侵入性很高。
  • 对代码不友好,减少代码本质是缺失代码的。
  • 对调试不友好,想要知道某个类中的属性的getter方法都被哪些类引用的,就很复杂了。
  • 对升级不友好,版本兼容性。
  • 破坏封装性,对类中的所有属性都定义了getter/setter方法。

Spring Configuration Processor

转:使用...获取配置文件

springboot中获取配置文件的方式,通常大家最常用的是@Value("${mail.username}")的形式,也可以用spring-boot-configuration-processor来更优雅得读取配置文件

pom.xml配置:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

定义配置文件

mail.username=wjh
mail.password=wjh123

新建配置文件读取类

@Data
@Configuration
@EnableConfigurationProperties(MailConfig.class)
@ConfigurationProperties(
  prefix = MailConfig.PREFIX, ignoreInvalidFields = true
)
public class MailConfig {
     // 这里对应配置文件中的mail前缀
    public static final String PREFIX = "mail"; 
    private String username;
    private String password;
}

取用配置
先注入配置文件类

@Autowired
private MailConfig mailConfig;

取配置文件

String userName = mailConfig.getUsername();

相关文章

网友评论

      本文标题:【spring0】Developer Tools

      本文链接:https://www.haomeiwen.com/subject/pyxrkktx.html