关键词:
【中文标题】Kotlin 数据类【英文标题】:Kotlin Data class 【发布时间】:2019-08-16 20:43:49 【问题描述】:我在 java 中有以下 POJO,它在 Spring Boot 应用程序中用于在应用程序启动期间从 YML 注入属性。尝试将应用程序转换为Kotlin
,但是当我将 POJO 转换为数据类时,我很难实现注入的值。
@Component
@ConfigurationProperties("rest")
@Data
public class RestProperties
private final Client client = new Client();
@Data
public static class Client
private int defaultMaxTotalConnections;
private int defaultMaxConnectionsPerRoute;
private int defaultReadTimeout;
我尝试了以下解决方案,但没有奏效。
@Component
@ConfigurationProperties("rest")
class RestProperties
val client = Client()
class Client()
constructor(
defaultMaxTotalConnections: Int,
defaultMaxConnectionsPerRoute: Int,
defaultReadTimeout: Int
) : this()
@Component
@ConfigurationProperties("rest")
class RestProperties
val client = Client()
class Client
var defaultMaxTotalConnections: Int = 50
set(defaultMaxTotalConnections)
field = this.defaultMaxTotalConnections
var defaultMaxConnectionsPerRoute: Int = 10
set(defaultMaxConnectionsPerRoute)
field = this.defaultMaxConnectionsPerRoute
var defaultReadTimeout: Int = 15000
set(defaultReadTimeout)
field = this.defaultReadTimeout
第二个代码有效,但值不是从 YML 注入的。感谢您的帮助。
【问题讨论】:
Kotlin & Spring Boot @ConfigurationProperties的可能重复 谢谢@noiaverbale 【参考方案1】:RestProperties
类可以转换为 Kotlin,如下所示:
@Component
@ConfigurationProperties("rest")
class RestProperties
val client: Client = Client()
class Client
var defaultMaxTotalConnections: Int = 0
var defaultMaxConnectionsPerRoute: Int = 0
var defaultReadTimeout: Int = 0
请注意,需要在application.yml
中添加如下属性才能正确注入。
rest:
client:
defaultMaxTotalConnections: 1
defaultMaxConnectionsPerRoute: 2
defaultReadTimeout: 3
另外,像这样提供配置的类通常应该用@Configuration
而不是@Component
注解。
【讨论】:
谢谢@Madhu Bhatkotlin常用的kotlin类①(嵌套类|数据类|数据类copy函数|数据类解构声明operatorfuncomponent1|数据类运算符重载)(代码片段)
...类二、数据类三、数据类copy函数四、数据类解构声明1、Kotlin普通类解构声明operatorfuncomponent12、数据类解构声明五、运算符重载函数一、嵌套类嵌套类指的是在类A中定义类B,一般是类B对类A有一定的作用,将类B嵌套进类A中;格式如... 查看详情
kotlin常用的kotlin类①(嵌套类|数据类|数据类copy函数|数据类解构声明operatorfuncomponent1|数据类运算符重载)(代码片段)
...类二、数据类三、数据类copy函数四、数据类解构声明1、Kotlin普通类解构声明operatorfuncomponent12、数据类解构声明五、运算符重载函数一、嵌套类嵌套类指的是在类A中定义类B,一般是类B对类A有一定的作用,将类B嵌套进类A中;格式如... 查看详情
kotlin基础-数据类
...不是指保存到磁盘,而是指转换成文本格式,便于保存*Kotlin数据类:dataclass类名(属性列表)***/dataclassArticle(varid:Int,vartitle:String,varcontent:String)funmain(args:Array<String>){valart 查看详情
Firebase @Exclude 与 kotlin 数据类
】Firebase@Exclude与kotlin数据类【英文标题】:Firebase@Excludewithkotlindataclass【发布时间】:2017-02-2804:47:32【问题描述】:我在Kotlin中有这个数据类(示例):importcom.google.firebase.database.ExcludedataclassUser(valname:String="",@Excludevalage:Int=0)而... 查看详情
在 Kotlin 中扩展数据类
】在Kotlin中扩展数据类【英文标题】:ExtenddataclassinKotlin【发布时间】:2014-12-1403:59:07【问题描述】:数据类似乎是Java中老式POJO的替代品。这些类允许继承是可以预料的,但我看不出扩展数据类的方便方法。我需要的是这样的... 查看详情
对 kotlin 数据类使用 Jackson @JsonProperty 注释
】对kotlin数据类使用Jackson@JsonProperty注释【英文标题】:UsageofJackson@JsonPropertyannotationforkotlindataclasses【发布时间】:2018-06-0712:09:23【问题描述】:科特林1.2.10jackson-module-kotlin:2.9.0我在kotlin中有以下数据类:dataclassCurrencyInfo(@JsonProp... 查看详情
Proguard - 不要混淆 Kotlin 数据类
】Proguard-不要混淆Kotlin数据类【英文标题】:Proguard-donotobfuscateKotlindataclasses【发布时间】:2018-02-1607:54:46【问题描述】:在我的项目中,我将AutoValue用于我的旧模型类。我开始使用Kotlin,我想使用DataClasses而不是AutoValue。我想在... 查看详情
将 Firebase 数据快照反序列化为 Kotlin 数据类
】将Firebase数据快照反序列化为Kotlin数据类【英文标题】:DeserializeaFirebaseData-SnapshottoaKotlindataclass【发布时间】:2018-11-1607:06:08【问题描述】:您好,我有一个Kotlin数据类,如下所示dataclassUser(@get:ExcludevalgUser:Boolean,@get:Excludevaluid... 查看详情
Kotlin - 数据类实体抛出 ***Error
】Kotlin-数据类实体抛出***Error【英文标题】:Kotlin-Dataclassentitythrows***Error【发布时间】:2018-08-0206:16:38【问题描述】:我尝试将kotlin(版本1.2.21)与spring-boot(1.5.9.RELEASE)结合起来。我在使用带有@Entity注释的数据类时遇到了问... 查看详情
使用 GSON 来自 Json 的 Kotlin 数据类
】使用GSON来自Json的Kotlin数据类【英文标题】:KotlinDataClassfromJsonusingGSON【发布时间】:2017-10-2209:54:15【问题描述】:我有这样的JavaPOJO类:classTopic@SerializedName("id")longid;@SerializedName("name")Stringname;我有一个像这样的Kotlin数据类datacl... 查看详情
kotlin学习与实践数据类类委托“object”
...向外提供getter、setter、toString、Hashcode等机械式的方法。*Kotlin也像Java一样提供了toStringequalshashCode方法,也可以重写他们classClient1(valname:String,valpostalCode:Int){overridefuntoStri 查看详情
kotlin 数据类 + bean 验证 jsr 303
】kotlin数据类+bean验证jsr303【英文标题】:kotlindataclass+beanvalidationjsr303【发布时间】:2016-06-2105:46:39【问题描述】:我正在尝试让Kotlin在spring-data-rest项目中使用jsr303验证。给定以下数据类声明:@EntitydataclassUser(@Id@GeneratedValue(strat... 查看详情
从 Kotlin 中的密封类扩展数据类
】从Kotlin中的密封类扩展数据类【英文标题】:ExtendingdataclassfromasealedclassinKotlin【发布时间】:2017-11-0905:46:33【问题描述】:我有一组共享一些公共字段的数据类,所以理想情况下,我想在超类型中声明它们(本例中为Message)... 查看详情
kotlin数据类与密封类(代码片段)
数据类Kotlin可以创建一个只包含数据的类,关键字为 data:dataclassUser(valname:String,valage:Int)编译器会自动的从主构造函数中根据所有声明的属性提取以下函数:equals() / hashCode()toString() 格式如 "User(name=John,age=42)"co... 查看详情
覆盖 Kotlin 数据类的 getter
】覆盖Kotlin数据类的getter【英文标题】:OverridegetterforKotlindataclass【发布时间】:2016-11-2407:55:33【问题描述】:给定以下Kotlin类:dataclassTest(valvalue:Int)如何覆盖Intgetter以便在值为负时返回0?如果这不可能,有哪些技术可以达到合... 查看详情
Json 到 kotlin 数据类 [关闭]
】Json到kotlin数据类[关闭]【英文标题】:Jsontokotlindataclasses[closed]【发布时间】:2017-03-1610:38:41【问题描述】:是否存在从json模型生成kotlin数据类的服务,其工作方式与http://www.jsonschema2pojo.org/站点上的工作方式相同?我的新项目... 查看详情
Kotlin 数据类可选变量
】Kotlin数据类可选变量【英文标题】:Kotlindataclassoptionalvariable【发布时间】:2018-04-1810:48:32【问题描述】:dataclassStudent(valid:Int?,valfirstName:String?,vallastName:String?,valhobbyId:Int?,valaddress1:String?,valaddress2:String?,valcreated: 查看详情
暴露属性和 Kotlin 数据类的接口
】暴露属性和Kotlin数据类的接口【英文标题】:InterfacesexposingpropertiesandKotlindataclasses【发布时间】:2019-12-1411:48:28【问题描述】:我在Kotlin中有一个数据类:dataclassImage(valname:String,valurl:URL)我想通过REST(SpringBoot,JPA)提供这些... 查看详情