Im Frühjahr, ich Objekte mit Aware Schnittstellen Frühling bekommen kann:Was den Unterschied zwischen Aware-Schnittstelle und @Autowired
@Component
class TestAware : ApplicationContextAware, EnvironmentAware {
override fun setEnvironment(environment: Environment) {
println("Server port" + environment.getProperty("server.port"))
}
override fun setApplicationContext(applicationContext: ApplicationContext) {
println("ApplicationContext" + applicationContext.displayName)
}
}
Aber dann kann ich das Gleiche mit @Autowired tun:
@Component
class AutowiredTest {
@Autowired
fun constructor(env: Environment, appCtx: ApplicationContext) {
println("ApplicationContext From Autowired" + appCtx.displayName)
println(env.getProperty("server.port"))
}
}
Also was ist der Unterschied zwischen ihnen, und in welchen Fällen muss ich Aware aber nicht @Autowired verwenden?