gpt4 book ai didi

spring - 如何在kotlin中使用@Autowired之类的spring注解?

转载 作者:IT老高 更新时间:2023-10-28 13:26:21 27 4
gpt4 key购买 nike

是否可以在 Kotlin 中执行类似以下操作?

@Autowired
internal var mongoTemplate: MongoTemplate

@Autowired
internal var solrClient: SolrClient

最佳答案

在 Spring 中进行依赖注入(inject)的推荐方法是构造函数注入(inject):

@Component
class YourBean(
private val mongoTemplate: MongoTemplate,
private val solrClient: SolrClient
) {
// code
}

在 Spring 4.3 之前的构造函数应该使用 Autowired 显式注释:

@Component
class YourBean @Autowired constructor(
private val mongoTemplate: MongoTemplate,
private val solrClient: SolrClient
) {
// code
}

在极少数情况下,您可能喜欢使用字段注入(inject),您可以在 lateinit 的帮助下做到这一点:

@Component
class YourBean {

@Autowired
private lateinit var mongoTemplate: MongoTemplate

@Autowired
private lateinit var solrClient: SolrClient
}

构造函数注入(inject)在创建bean时检查所有依赖,所有注入(inject)的字段都是val,而lateinit注入(inject)的字段只能是var,运行时开销很小。而用构造函数测试类,你不需要反射。

链接:

  1. Documentation on lateinit
  2. Documentation on constructors
  3. Developing Spring Boot applications with Kotlin

关于spring - 如何在kotlin中使用@Autowired之类的spring注解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35479631/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com