当前位置: 首页 > 知识库问答 >
问题:

Kotlin

索锐藻
2023-03-14
@Component
open class AmazonDynamoDBAsyncClientProvider @Autowired constructor(val dynamoDBConfiguration: DynamoDBConfig){

@Bean open fun getAmazonDBAsync() = AmazonDynamoDBAsyncClientBuilder.standard()
        .withEndpointConfiguration(
                AwsClientBuilder.EndpointConfiguration(dynamoDBConfiguration.endpoint, dynamoDBConfiguration.prefix))
        .build()
}

下面是我试图用配置autowire的kotlin bean

@Component
@ConfigurationProperties(value = "dynamo")
open class DynamoDBConfig(var endpoint: String="", var prefix: String="")

最后,这是一个常规java bean,它确实用configurationproperties填充,但是当它得到autowired时,我看到这些属性是空的/null

@Component
@ConfigurationProperties("dynamo")
public class DynamoDBConfiguration {
private String endpoint;
private String tablePrefix;

public String getEndpoint() {
    return endpoint;
}

public void setEndpoint(String endpoint) {
    this.endpoint = endpoint;
}

public String getTablePrefix() {
    return tablePrefix;
}

public void setTablePrefix(String tablePrefix) {
    this.tablePrefix = tablePrefix;
}
}

共有1个答案

公孙国兴
2023-03-14

您是否尝试过删除ConfigurationProperties类上的@Component注释?

以下是我对Kotlin和Spring所做的,希望能有所帮助。

我试图利用kotlin-spring和kotlin-allopen gradle插件

dependencies {
    classpath "org.jetbrains.kotlin:kotlin-noarg:$kotlinVersion"
    classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlinVersion"
}
apply plugin: 'kotlin-spring'
apply plugin: 'kotlin-noarg'
noArg {
    annotation("your.noarg.annotation.package.NoArg")
}
@ConfigurationProperties("dynamo")
@NoArg
data class DynamoDBConfiguration(var endpoint: String, var prefix: String)
 类似资料:
  • 问题内容: 我有这段Java代码: 我想在Kotlin中获得MainActivity对象。自动转换在处中断。 问题答案: 您可以通过使用合格的来获得对Kotlin中对象的引用。例如:

  • 问题内容: 如何将Kotlin转换为varargs Java ? 如何将ArrayList传递给varargs方法参数? 问题答案: 您应该使用如下形式的 散布运算符 : 散布运算符需要放在数组参数的前面: 有关更多信息,请参见文档: 当我们调用-function时,可以一个接一个地传递参数,例如,或者,如果我们已经有一个数组并将其内容传递给该函数,则可以使用spread运算符(将数组前缀为):

  • 问题内容: 我在kotlin-stdlib中遇到了注解,我想知道它是做什么用的,但是不幸的是,它没有记录。(UPD:那时) 据我了解,将其应用于程序元素会将修饰符添加到相应的字节码元素中。结果,该元素在Java中变得不可见: Java代码中的某处: 但是相同的元素在Kotlin代码中仍然可见: 隐藏来自非Kotlin来源的声明是否有效使用?它是预期用途吗?还有哪些其他合适的用例? 由于从Java隐

  • 问题内容: 我是Kotlin的新手,最近将一个简单文件从Java转换为Kotlin。我想知道为什么Android转换器将我的java类更改为Kotlin对象。 Java: 转换的Kotlin: 为什么不呢? 任何帮助将不胜感激谢谢。 问题答案: Kotlin对象就像一个无法实例化的类,因此必须按名称进行调用。(本身是静态类) android转换器看到您的类仅包含静态方法,因此将其转换为Kotlin

  • 问题内容: 我不明白为什么可以在Kotlin的类外编写函数?这是一个好习惯吗? 例如,在Kotlin中可以在我的课外编写一个函数: 在Java中,这是不可能的!那不是面向对象语言正常工作的方式,对吗? 在文档中,他们讨论了经典函数的 局部 函数和在类或对象内部定义的函数的 成员函数 ,但是他们没有解释何时使用一个或另一个更好。 问题答案: 在Java中,这是不可能的!那不是面向对象语言正常工作的方

  • 问题内容: 我在Android应用程序开发中从Java稍微转移到Kotlin,但是在某些情况下,我不想用Kotlin进行编码,而是希望这些特殊情况用Java编写: 省去Kotlin多余的使用量 我知道现在正是Java总是以相反的方式触发 还提供了表达式和许多其他功能。 但仍然,我的某些代码无法用Kotlin编写,例如成员或字段。 Kotlin注释实际上可以代替那些注释。但是喜欢Java的某些编码功

  • 问题内容: 如何在Kotlin中建立一个拥有私有获取者(或没有私有获取者)却拥有公共委托者的财产? 不会出现错误: 就我而言,原因是Java互操作:我希望我的Java代码能够调用,但不能。 问题答案: 目前,在Kotlin中,不可能有一个带有传承人的财产,而不是财产。问题跟踪器中存在语言设计问题,可以随时对其进行观看/投票或分享您的用例:https : //youtrack.jetbrains.c

  • 问题内容: 更新 已针对此问题提交了一个错误:https : //youtrack.jetbrains.com/issue/KT-17951 更新2 该错误已在Android Studio 3.0 Canary 3中修复 原始帖子 我刚刚开始使用Android Studio 3.0,从一开始就启用了kotlin支持。我在项目中编写了一个非常简单的Kotlin类: 现在我想测试该类,首先我在Kotl