网站首页 > java教程 正文
Spring Boot 3.0的基线版本是Java 17,Spring Boot 3.0版本将全面对Java 17的支持。较新版本的2.x的Spring Boot版本也可以使用Java 17的特性。
本文介绍Spring Boot 2.6对Java 17支持的一个新特性,使用Java 17的Record来做为Spring Boot的配置属性(ConfiguartionProperties)。
什么是Record
record是一种特殊类型的类声明,目的是为了减少样板代码。record引入的主要目的是快速创建数据载体类。
这种类的主要目的就是在不同的模块或者层之间包含并传递数据,它们表现为POJO(Plain Old Java Objects)和DTO(Data Transfer Objects)。
record声明有专门的的关键字record,我们比较下一个简单的POJO类和record上语法的区别:
POJO类:
@Data
public class Point {
private String x;
private String y;
}
record:
public record Point(String x, String y) {
}
Spring Boot的配置属性(Configuration Properties)类也是一个简单POJO。
用POJO类作为Configuration Properties
- 新建演示项目,注意添加Spring Configuration Processor
- 演示的Configuration Properties,首先我们使用常规的Java类来演示
@ConfigurationProperties(prefix = "author")
@Data
public class AuthorProperties {
private String firstName;
private String lastName;
}
- application.properties 中的配置
author.firstName=wang
author.lastName=yunfei
- 注册Configuration Properties为Bean,并使用
@SpringBootApplication
@EnableConfigurationProperties(AuthorProperties.class)//将AuthorProperties注册为Bean
@Slf4j
public class RecordConfigurationPropertiesApplication {
public static void main(String[] args) {
SpringApplication.run(RecordConfigurationPropertiesApplication.class, args);
}
@Bean //注入并使用AuthorProperties的Bean
CommandLineRunner commandLineRunner(AuthorProperties authorProperties){
return args -> {
log.info(authorProperties.toString());
};
}
}
- 运行程序
用Record作为Configuration Properties
我们只需要将AuthorProperties类修改为record即可:
@ConfigurationProperties(prefix = "author")
public record AuthorProperties(String firstName, String lastName) {
}
运行结果和上面保持一致。
感谢对我的书《从企业级开发到云原生微服务:Spring Boot实战》的支持。
(此处已添加书籍卡片,请到今日头条客户端查看)
猜你喜欢
- 2024-12-14 JAVA基础小知识(干货哟)
- 2024-12-14 Java 21新特性-虚拟线程
- 2024-12-14 Java8新特性之 lambda 表达式
- 2024-12-14 java基础之java8新特性:Lambda表达式
- 2024-12-14 Java 9特性抢鲜看
- 2024-12-14 渣翻:从 Java 8 到 Java 18 的新语言特性
- 2024-12-14 Java面向对象的特性
- 2024-12-14 Java17 vs Java8: 新旧对决,这些Java 17新特性你不容错过
- 2024-12-14 Java 18 新特性:简单Web服务器 jwebserver
- 2024-12-14 《我的世界》JAVA版特性开关!收纳袋、村民交易平衡、1.21更新!
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)