¿Puedo escribir una function de extensión de Kotlin que use un bean de spring autoconectado?

Intento crear una function de extensión cuya implementación utiliza un Spring Bean. No parecía posible hacerlo al definir la function de extensión en el nivel superior de un package. Intenté esto:

@Component class Converter { companion object { @Autowinetworking lateinit var transformer: Transformer fun Class1.convert(): Class2 { return Class2 (this, transformer.transform(someStringProperty)) } } } 

donde transform es una function que transforma una cadena en otra cadena, y Class1 es una class que tiene una propiedad someStringProperty . Mi esperanza era que otras classs pudieran import pkg.Converter.Companion.convert y luego poder usar x.convert() donde x es un object de tipo Class1 .

La syntax funciona, y el uso de x.convert() en otras classs comstack bien. Pero da como resultado una exception en time de ejecución: kotlin.UninitializedPropertyAccessException: lateinit property transformer has not been initialized

Parece que Spring no está autoconectando la variable porque está en un object complementario y no en un object componente real.

@Component object compañero con @Component no funcionó.

No creo que mover Class1.convert directamente dentro de Converter funcionaría, porque luego usar x.convert() necesitaría una instancia del object Converter , y no veo cómo hacer esto con la syntax de la function de extensión.

¿Hay alguna manera de lograr esto, o tengo que renunciar a la syntax de la function de extensión?