Spring在Kotlin对象中自动布线是否冗余

时间:2019-11-21 15:13:43

标签: spring kotlin

在Spring框架中,默认情况下,所有Bean范围都是Singleton。但是使用Kotlin,我们可以轻松创建Singleton对象。只需要做

object SimpleService {
  fun businessFunction() = ...
}

当我们尝试应用Spring来管理Kotlin对象的范围时,是否有点多余。因为我只需要做

  • 而不是通过Spring创建类和管理obj,我只需要创建Object(单个obj)

  • 如果我们不想紫interface segregation principle,我们将创建一个接口,而Service只需要实现它即可。并且只需要向Spring注册类似@Bean IMyService = SimpleSerice

  • 的东西

Spring可以通过Kotlin帮助我们的唯一一件事是Spring Data(无需执行即可创建存储库接口)。但我认为我们只需要为此集成一些开源(或创建新的开源)

我担心Spring对于Kotlin是完全多余并且沉重的吗?

1 个答案:

答案 0 :(得分:0)

Spring Beans的用途与Kotlin对象不同,并且本身不具有可比性。

使用Spring Bean,可以获得(特定于环境的)配置,依赖项注入...。实际上,您可以创建具有不同值的相同类型的多个bean。

在进行测试时,您可以使用切片或量身定制测试,以仅实例化测试绝对需要的bean。此外,您可以模拟它们。

TBOMK,kotlin对象表达式在加载包含文件时被初始化-在较大的项目中可能不太透明。这样做的副作用是,您可能无法在测试中对其进行控制。同样,必须以不同方式实现配置和注入。从未尝试过嘲笑...。

我将Kotlin与Spring一起使用,并且使用了各种Spring bean。每当我具有非常静态的上下文且具有快速初始化时,便会使用伴随对象和对象表达式。因此,这些对象提供了更多的静态关注点,而弹簧豆提供了动态关注点。