diff --git a/src/main/java/com/fastcampus/springbootpractice/FastcampusSpringBootPracticeApplication.java b/src/main/java/com/fastcampus/springbootpractice/FastcampusSpringBootPracticeApplication.java index 581db64..0e33857 100644 --- a/src/main/java/com/fastcampus/springbootpractice/FastcampusSpringBootPracticeApplication.java +++ b/src/main/java/com/fastcampus/springbootpractice/FastcampusSpringBootPracticeApplication.java @@ -2,7 +2,9 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.properties.ConfigurationPropertiesScan; +@ConfigurationPropertiesScan @SpringBootApplication public class FastcampusSpringBootPracticeApplication { diff --git a/src/main/java/com/fastcampus/springbootpractice/properties/CustomProperties.java b/src/main/java/com/fastcampus/springbootpractice/properties/CustomProperties.java new file mode 100644 index 0000000..018ac12 --- /dev/null +++ b/src/main/java/com/fastcampus/springbootpractice/properties/CustomProperties.java @@ -0,0 +1,29 @@ +package com.fastcampus.springbootpractice.properties; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.context.properties.ConstructorBinding; +import org.springframework.boot.context.properties.bind.DefaultValue; +import org.springframework.boot.context.properties.bind.Name; +import org.springframework.boot.convert.DurationUnit; + +import java.time.Duration; +import java.time.temporal.ChronoUnit; + +@ConstructorBinding +@ConfigurationProperties("iam") +public class CustomProperties { + + /** + * 와아 이건 configuration processor 테스트 + */ + private final Duration duration; + + public CustomProperties(@DefaultValue("1") @DurationUnit(ChronoUnit.MILLIS) @Name("duration") Duration duration) { + this.duration = duration; + } + + public Duration getDuration() { + return duration; + } + +} \ No newline at end of file diff --git a/src/main/java/com/fastcampus/springbootpractice/service/SortService.java b/src/main/java/com/fastcampus/springbootpractice/service/SortService.java index 1b1bc8a..cca967e 100644 --- a/src/main/java/com/fastcampus/springbootpractice/service/SortService.java +++ b/src/main/java/com/fastcampus/springbootpractice/service/SortService.java @@ -1,6 +1,7 @@ package com.fastcampus.springbootpractice.service; import com.fastcampus.springbootpractice.logic.Sort; +import com.fastcampus.springbootpractice.properties.CustomProperties; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; @@ -12,9 +13,10 @@ public class SortService { private final Sort sort; - public SortService(@Qualifier("bubbleSort") Sort sort) { - this.sort = sort; + public SortService(@Qualifier("bubbleSort") Sort sort, CustomProperties customProperties) { + System.out.println("프로퍼티: " + customProperties.getDuration().toMillis() + " ms"); System.out.println("구현체: " + sort.getClass().getName()); + this.sort = sort; } public List doSort(List list) { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 728ad00..bccd620 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +1,9 @@ logging.logback.rollingpolicy.file-name-pattern=rolling.txt +management.endpoints.web.exposure.include=* +spring.config.import=classpath:my[.properties],configtree:/Users/Uno/Documents/github/fastcampus-spring-boot-practice/src/main/resources/tree/ +spring.profiles.active=test + +#--- + +spring.config.activate.on-profile=fastcampus | test +iam.duration=5s diff --git a/src/main/resources/my b/src/main/resources/my new file mode 100644 index 0000000..71b209c --- /dev/null +++ b/src/main/resources/my @@ -0,0 +1 @@ +iam.duration=10s \ No newline at end of file diff --git a/src/main/resources/tree/iam/duration b/src/main/resources/tree/iam/duration new file mode 100644 index 0000000..36c172f --- /dev/null +++ b/src/main/resources/tree/iam/duration @@ -0,0 +1 @@ +12s \ No newline at end of file