有没有可能在科特林做类似跟随的事情?
@Autowired
internal var mongoTemplate: MongoTemplate
@Autowired
internal var solrClient: SolrClient
还可以通过构造函数自动连接依赖项。请记住使用@Configuration,@Component,@Service
等注释依赖项
import org.springframework.stereotype.Component
@Component
class Foo (private val dependency: MyDependency) {
//...
}
是的,Kotlin和java一样支持Java注释。一个问题是主构造函数上的注释需要显式的“constructor”关键字:
从…起https://kotlinlang.org/docs/reference/annotations.html
如果需要注释类的主构造函数,需要在构造函数声明中添加constructor关键字,并在它之前添加注释:
class Foo @Inject constructor(dependency: MyDependency) {
// ...
}
在Spring中进行依赖注入的推荐方法是构造函数注入:
@Component
class YourBean(
private val mongoTemplate: MongoTemplate,
private val solrClient: SolrClient
) {
// code
}
在Spring 4.3之前,构造函数应该使用自动布线
进行显式注释:
@Component
class YourBean @Autowired constructor(
private val mongoTemplate: MongoTemplate,
private val solrClient: SolrClient
) {
// code
}
在极少数情况下,您可能喜欢使用字段注入,您可以在< code>lateinit的帮助下这样做:
@Component
class YourBean {
@Autowired
private lateinit var mongoTemplate: MongoTemplate
@Autowired
private lateinit var solrClient: SolrClient
}
构造函数注入在bean创建时检查所有依赖项,所有注入的字段都是val
,另一方面lateinit注入的字段只能是var
,并且运行时开销很小。并且要使用构造函数测试类,您不需要反射。
链接:
用spring注解Autowering非原语,如下所示
问题内容: 我遇到了一个例子: 我很好奇如何获取集合,因为没有设置方法,而且它是私有的。 问题答案: Java允许上一个字段或方法的访问控制被关断(是的,有一个安全检查到第一通路)经由方法,其是反射框架(二者的一部分Field和从继承)。一旦发现并写入了该字段,其余的工作就变得很简单了。只是一个简单的编程问题。 分享
问题内容: 我有一个使用自动装配的3个不同类的A类 在测试它们时,我只希望将其中两个类(B&C)作为模拟,并让D类在正常运行时可以自动装配,但此代码对我不起作用: 甚至有可能这样做吗? 问题答案: 应该是这样的 如果您不想成为别人,则无需在课堂上做任何事情。您 应具有的正确实例。此外,我认为你需要使用的工作,用正确的设定。因为您没有使用,所以需要使用 MockitoAnnotations.init
我使用的库使用类型使用注释向变量添加约束。例如,如果您想要一个可配置的不透明度(以百分比为单位,由表示),您需要注释类型: 我不能让同一个库工作在相同的kotlin代码。 为了简化问题,让我们自己声明注释和用法: 运行会产生,表明类型上存在注释。 如果我们引入一个新的kotlin类,具有类似的字段和注释类型: 之前的检查,现在在类上: 产生,指示JavaAnnot注释不存在于类型的上,尽管我们显然