728x90
스프링 부트 개념과 활용
4. 스프링 부트 활용
포스팅 참조 정보
GitHub
공부한 내용은 GitHub에 공부용 Organizations에 정리 하고 있습니다
해당 포스팅에 대한 내용의 GitHub 주소
실습 내용이나 자세한 소스코드는 GitHub에 있습니다
포스팅 내용은 간략하게 추린 핵심 내용만 포스팅되어 있습니다
https://github.com/freespringlecture/springboot-concept-uses/tree/chap04-03-02-configuration
해당 포스팅 참고 인프런 강의
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard
실습 환경
- Java Version: Java 11
- SpringBoot Version: 2.1.2.RELEASE
3. 외부 설정 2부
타입-세이프 프로퍼티 @ConfigurationProperties
@Value
로 값을 받아오는 것 보다 추천 하지만@Value
는 SpEL 표현식을 사용할 수 있는 장점@ConfigurationProperties
으로 여러 properties를 묶어서 읽어올 수 있음- 빈으로 등록해서 다른 빈에 주입할 수 있음
@EnableConfigurationProperties
,@Component
,@Bean
@ConfigurationProperties
를 추가하면 META 정보를 생성해주는 플러그인 설치안내가 뜸- https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#configuration-metadata-annotation-processor
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
- https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#configuration-metadata-annotation-processor
@ConfigurationProperties
로 설정한 변수들은 META정보를 생성해줘서 나중에 application.properties에서 자동완성을 지원함
기존방식 아래와 같이 했으나 자동으로 @EnableConfigurationProperties
설정이 되어있으므로 패스
@SpringBootApplication
@EnableConfigurationProperties(FreelifeProperties.class)
Properties 클래스에 @Component
설정을 하여 빈으로 만들어주기만 하면됨
@Component
@ConfigurationProperties("freelife")
아래와 같이 값을 주입받아 가져올 수 있음
@Autowired
FreelifeProperties freelifeProperties;
@Override
public void run(ApplicationArguments args) throws Exception {
System.out.println("=======================");
System.out.println(freelifeProperties.getFullName());
System.out.println(freelifeProperties.getAge());
System.out.println("=======================");
}
융통성 있는 바인딩
아래와 같이 입력하면 알아서 다 자동 맵핑 해줌
- context-path (케밥)
- context_path (언드스코어)
- contextPath (캐멀)
- CONTEXTPATH
SpringFramework 가 지원하는 컨버전 서비스를 통해서 기본적으로 타입을 컨버팅 해줌
프로퍼티 타입 컨버전 @DurationUnit
SpringBoot가 제공하는 독특한한 컨버전 타입
시간정보를 받고 싶을 떄 아래의 타입을 잘 명시해주면 Annotation을 활용하지 않아도 시간정보를 잘가져옴
ns
for nanosecondsus
for microsecondsms
for millisecondss
for secondsm
for minutesh
for hoursd
for days
프로퍼티 값 검증
FailureAnalyzer Validated 검증 메세지를 출력해줌
- Class에
@Validated
붙이면 검증가능 - JSR-303 (@NotNull, ...)
메타정보생성
@Value
- SpEL 을 사용할 수 있지만...
- 위에 있는 기능들은 전부 사용 못합니다
728x90
'개발강의정리 > Spring' 카테고리의 다른 글
[스프링 부트 개념과 활용] 4-5. 로깅 1부: 스프링 부트 기본 로거 설정 (0) | 2019.10.27 |
---|---|
[스프링 부트 개념과 활용] 4-4. 프로파일 (0) | 2019.10.26 |
[스프링 부트 개념과 활용] 4-3. 외부 설정 1부 (0) | 2019.10.24 |
[스프링 부트 개념과 활용] 4-2. SpringApplication 2부 (0) | 2019.10.23 |
[스프링 부트 개념과 활용] 4-2. SpringApplication 1부 (0) | 2019.10.22 |
댓글