Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 티스토리챌린지
- MySQL
- PETERICA
- CKA
- Elasticsearch
- Linux
- IntelliJ
- 공부
- CKA 기출문제
- AI
- 정보처리기사실기 기출문제
- kotlin spring
- kotlin
- 코틀린 코루틴의 정석
- Pinpoint
- Kubernetes
- mysql 튜닝
- APM
- Java
- minikube
- kotlin coroutine
- CloudWatch
- Spring
- 정보처리기사 실기
- AWS EKS
- 정보처리기사 실기 기출문제
- kotlin querydsl
- aws
- 오블완
- 기록으로 실력을 쌓자
Archives
- Today
- Total
피터의 개발이야기
[kotlin] Springboot - Configuration properties 본문
반응형
ㅁ 들어가며
ㅇ spring boot tutorial를 참조하여 나만의 확장 프로그램 만들기를 구현해 보았습니다.
ㅁ Configuration properties
ㅇ Kotlin에서 애플리케이션 속성을 관리하는 데 권장되는 방법은 읽기 전용 properties을 사용하는 것입니다.
@ConfigurationProperties("blog")
data class BlogProperties(var title: String, val banner: Banner) {
data class Banner(val title: String? = null, val content: String)
}
ㅇ BlogProperties.kt을 생성합니다.
ㅁ Application Enable Properties 설정
@SpringBootApplication
@EnableConfigurationProperties(BlogProperties::class)
class BlogApplication {
// ...
}
ㅇ properties를 사용하기 위해서 BlogApplication에서 EnableConfigurationProperties 레벨을 활성화 시켜줍니다.
ㅁ Properties 사용을 위한 gradle 설정
ㅇ IDE에서 이러한 사용자 정의 속성을 인식하기 위해 고유한 메타데이터를 생성하려면 다음과 같이 spring-boot-configuration-processor 종속성을 사용하여 kapt를 구성해야 합니다.
plugins {
...
kotlin("kapt") version "1.9.22"
}
dependencies {
...
kapt("org.springframework.boot:spring-boot-configuration-processor")
}
ㅁ applicaiton.properties에 blog 설정
blog.title=Blog
blog.banner.title=Warning
blog.banner.content=The blog will be down tomorrow.
ㅁ 설정정보를 사용할 blog.mustache 페이지 수정
{{> header}}
<div class="articles">
{{#banner.title}}
<section>
<header class="banner">
<h2 class="banner-title">{{banner.title}}</h2>
</header>
<div class="banner-content">
{{banner.content}}
</div>
</section>
{{/banner.title}}
...
</div>
{{> footer}}
ㅁ Controller에 설정정보 주입
@Controller
class HtmlController(private val repository: ArticleRepository,
private val properties: BlogProperties) {
@GetMapping("/")
fun blog(model: Model): String {
model["title"] = properties.title
model["banner"] = properties.banner
model["articles"] = repository.findAllByOrderByAddedAtDesc().map { it.render() }
return "blog"
}
// ...
ㅇ BlogProperties를 주입 받아서 View에 전달한다.
ㅁ 실행
ㅇ 웹 애플리케이션을 다시 시작하고 새로 고치면 http://localhost:8080/ 블로그 홈페이지에 배너가 표시된다.
반응형
'Programming > Kotlin' 카테고리의 다른 글
[kotlin] 코틀린 코루틴의 정석- 스레드 기반 작업의 한계와 코루틴의 등장 (0) | 2024.05.28 |
---|---|
[kotlin] Kotlin Coroutine의 비동기 처리 장점, RxKotlin의 Callback 지옥 (0) | 2024.05.27 |
[kotlin] Springboot - RestController 생성 및 WebMvcTest (0) | 2024.05.24 |
[kotlin] Springboot - JPA 의존성 주입 (2) | 2024.05.23 |
[kotlin] Kotlin에서 Java로, Java에서 Kotlin으로 코드 변환 (0) | 2024.05.22 |
Comments