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

如何在kotlin中使用像@autowired或@value这样的spring注释来处理原始类型?

翟默
2023-03-14

用spring注解Autowering非原语,如下所示

@Autowired
lateinit var metaDataService: MetaDataService
@Value("\${cacheTimeSeconds}")
lateinit var cacheTimeSeconds: Int

共有1个答案

戴建义
2023-03-14

您还可以在构造函数中使用@value注释:

class Test(
    @Value("\${my.value}")
    private val myValue: Long
) {
        //...
  }

这样做的好处是您的变量是final的,并且不可为空。我也更喜欢构造函数注入。它可以使测试更容易。

 类似资料:
  • 有没有可能在科特林做类似跟随的事情?

  • 我的处理器中有一个简单的注释,如下所示: 这适用于java文件,但一旦我将文件转换为kotlin,注释的导入就不再有效。为什么? 我需要改变什么才能让他的注释也在Kotlin中工作?从文档中,我可以看到kotlin与java注释100%兼容,所以我有点困惑这里有什么问题...如果处理器不工作,需要调整以与kotlin一起工作,我会理解,但我不知道为什么导入本身不工作... 我说的图书馆在这里:ht

  • JSR 303@Valid注释可用于验证控制器方法的输入对象,如Mkyong上所示。通用域名格式 是否可以使用@Valid annotation来验证int和long[]等基元类型?如果是,怎么做? 下面是一个Spring MVC方法签名示例,需要验证参数是否大于0:

  • 最近,我将我的KMP项目分为fullstack项目和核心库(主要由公共数据类组成),并发现我需要在公共模块中定义的一个数据类上使用JVM库中的注释。 在Kotlin公共代码中似乎不可能使用Java库中的注释。 解决此类问题的可能方法是什么,最好避免通过声明此类数据类,然后在平台中重复其实现,但使用不同的注释?

  • 问题内容: 如何在Spring中使用@Value批注将值从属性文件注入Map中? 我的Spring Java类是我尝试使用$,但收到以下错误消息 无法自动装配字段:私有 嵌套异常是:无法解析字符串值中的占位符 我在.properties文件中具有以下属性 问题答案: 我相信Spring Boot支持使用注释开箱即用地加载属性映射。 根据该文档,你可以加载属性: 像这样变成豆子: 我之前使用过@Co