我有以下课程(部分代码):
@Component
class TestClass: InitializingBean, DisposableBean {
@Autowired
private lateinit var testBean: SomeObject
override fun afterPropertiesSet(){
log.info("testBean 1: $testBdean")
}
fun testFunction(testName: String): Boolean {
log.info("testBean 2: $testBdean")
}
@Throws(Exception::class)
override fun destroy() {
}
}
我看到testbean 1已成功运行,但testbean 2给出错误:lateinit属性testbean尚未初始化。那么testbean是在afterpropertiesset()中初始化的,在其他函数中不可用?我知道如果我们把testbean放在构造器testclass(testbean)中,它将被初始化并可用于所有函数。但是还有其他方法吗?因为testclass将从其他包调用,并且不是每个包都可以将testbean传递给构造函数。
1条答案
按热度按时间yfwxisqw1#
你可以创造一个
object
那是你的TestClass
并使用该保持器来引用您的create组件比如: