我正在尝试在 Spring/Kotlin 中编写一个简单的 Redis 接口服务,但在理解属性的初始化方式方面遇到了一些困难。
该application.properties文件指定Redis 的redis.host和redis.port值。然后我想设置一个RedisClientandStatefulRedisConnection对象以在内部与辅助函数一起使用。
我的问题是,尽管我运行时可以编译,但我得到:
@Service
class RedisService {
@Value("\${redis.host}")
private val host: String = "localhost"
@Value("\${redis.port}")
private val port: Int = 6379
private val log = LoggerFactory.getLogger(this::class.java)
private lateinit var client: RedisClient
private lateinit var connection: StatefulRedisConnection<String, String>
@PostConstruct
private fun setupConnection() {
log.info("Creating connection to: [redis://$host:$port]")
client = RedisClient.create(
RedisURI.create("redis://$host:$port")
)
connection = client.connect()
}
}
kotlin.UninitializedPropertyAccessException:lateinit 属性连接尚未初始化
设置需要“以编程方式”构建的属性的正确方法是什么?它们是否需要是带@Bean注释的函数或类似的东西?
谢谢你尽你所能的帮助。
慕斯709654
忽然笑
相关分类