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引入的主要目的是快速创建数据载体类。
这种类的主要目的就是在不同的模块或者层之间包含并传递数据,它们表现为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;
}
author.firstName=wang
author.lastName=yunfei
@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());
};
}
}
我们只需要将AuthorProperties类修改为record即可:
@ConfigurationProperties(prefix = "author")
public record AuthorProperties(String firstName, String lastName) {
}
运行结果和上面保持一致。
文章出自:爱科学的卫斯理,如有转载本文请联系爱科学的卫斯理今日头条号。
分享标题:SpringBoot2.6新特性:使用Java17的Record作为配置属性
地址分享:http://www.csdahua.cn/qtweb/news36/390236.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网