Skip to content

Commit

Permalink
외부설정 - 프로퍼티 타입 컨버전, 프로퍼티 값 검증 @validated
Browse files Browse the repository at this point in the history
  • Loading branch information
namjunemy committed Dec 4, 2018
1 parent 8fa0a1c commit ce9c5e9
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 1 deletion.
@@ -1,16 +1,26 @@
package io.namjune.springbootconceptandutilization;

import java.time.Duration;
import java.time.temporal.ChronoUnit;
import javax.validation.constraints.NotEmpty;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.convert.DurationUnit;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;

@Component
@ConfigurationProperties("nj")
@Validated
public class NamjuneProperties {

@NotEmpty
private String name;
private int age;
private String fullName;

@DurationUnit(ChronoUnit.SECONDS)
private Duration sessionTimeout = Duration.ofSeconds(30);

public String getName() {
return name;
}
Expand All @@ -34,4 +44,12 @@ public String getFullName() {
public void setFullName(String fullName) {
this.fullName = fullName;
}

public Duration getSessionTimeout() {
return sessionTimeout;
}

public void setSessionTimeout(Duration sessionTimeout) {
this.sessionTimeout = sessionTimeout;
}
}
Expand Up @@ -17,6 +17,7 @@ public void run(ApplicationArguments args) throws Exception {
System.out.println(namjuneProperties.getName());
System.out.println(namjuneProperties.getAge());
System.out.println(namjuneProperties.getFullName());
System.out.println(namjuneProperties.getSessionTimeout());
System.out.println("==========================");
}
}
3 changes: 2 additions & 1 deletion src/main/resources/application.yml
@@ -1,4 +1,5 @@
nj:
name: namjune
age: ${random.int(0,100)}
fullName: ${nj.name} Kim
fullName: ${nj.name} Kim
sessionTimeout: 30

0 comments on commit ce9c5e9

Please sign in to comment.