# Zusammenfassung
Hilfe:
# Setup
Spring Initializr (opens new window) bzw. IDE-Assistent (wo verfügbar)
Häufige Dependencies:
- Spring Reactive Web
- Spring Data JPA
- Spring Security
# Konfiguration
in application.properties oder application.yml
# Typsicher
@SpringBootApplication
@ConfigurationPropertiesScan
class DemoApplication(
private val config: MyAppProperties
)
@ConfigurationProperties("my.app")
@ConstructorBinding
data class MyAppProperties(
val pageTitle: String?,
val retries: Int = 3,
val silent: Boolean = false,
val defaultAuthor: Author?
) {
@ConstructorBinding
data class Author(
val name: String,
val mail: String
)
}
# Metadaten
// build.gradle.kts
plugins {
// ...
kotlin("kapt") version "1.4.30"
}
dependencies {
// ...
kapt("org.springframework.boot:spring-boot-configuration-processor")
}
# Logging
Gradle:
// https://mvnrepository.com/artifact/io.github.microutils/kotlin-logging-jvm
implementation("io.github.microutils:kotlin-logging-jvm:2.0.4")
ganz oben in Klasse oder .kt Datei:
private val logger = KotlinLogging.logger {}
# Konsolenanwendung
@Bean
fun runner() = CommandLineRunner { args ->
/* ... */
}
# Beans
@Configuration: Klasse, die@Beans bereitstellt@Component: Klasse, die selbst das Bean ist@Service: auch eine Component, für Business Logik
Name überschreiben / selektieren:
@Bean("myBean")
fun gimmeBean() /* ... */
@Qualifier("myBean") theBean: TheType
# Build-Info
// build.gradle.kts
springBoot {
buildInfo()
}
// in der Anwendung dann Bean anfordern
private val buildInfo: BuildProperties