본문 바로가기

@Value5

Springboot - 외부설정, 프로파일 외부설정 스프링부트 외부에서 변수설정을 할 수 있다. 예를 들면 application.properties 에 변수를 등록하면, @Value 어노테이션으로 값을 가져와 사용할 수 있었다. 또한 YAML 파일, 환경변수 등록, 커맨드라인 아규먼트 (--var) 로 외부 변수를 등록할 수 있다. 예를 들어보자. application.properties blue.name = river blue.age=${random.int} # 랜덤 변수를 사용할 수도 있다. blue.nameage = ${blue.name} ${blue.age} # 프로퍼티 안의 변수들을 다시 사용할 수도 있다. 애플리케이션 러너로 테스트를 해보자. @Value 어노테이션으로 프로퍼티 변수값을 가져올 수도 있다. @Component publi.. 2021. 1. 16.
Spring - spEL(스프링 Expression Language) Spring - spEL, 스프링 표현어 스프링 EL(Expression Language) 란 객체 그래프를 조회하고 조작하는 기능을 제공하는 언어를 말한다. spEL은 모든 스프링 프로젝트에서 사용하는 expression language로 만들었다. 문법이나 규칙은 배우기가 쉽다. #{"표현식"} ${"프로퍼티"} 이런식으로 특정 객체를 가져와서 문자열처럼 사용할 수 있고, 계산도 할 수 있다. 표현식은 프로퍼티를 포함할 수 있지만, 반대로는 불가능하다. 가령 #{blue.data} + 1 은 가능하다. 어디에 사용되는가 @Value 애노테이션 안에 spEL을 쓰면, 아래 필드값에 결과가 주입된다. @ConditionalOnExpression 어노테이션에서도 사용된다. 스프링 시큐리티의 경우 메소드 시.. 2021. 1. 13.
[Spring Boot] 10 - @ConfigurationProperties 사용법 Spring Boot 010 - @ConfigurationProperties 의 여러 장점, 일부 단점 2.8.5 Third-party Configuration 클래스를 주석(annotate)하기 위해 @ConfigurationProperties 를 사용하는 것 뿐 아니라, @Bean 메소드에서도 사용할 수 있습니다. 건드릴 수 없는 클래스가 있을 때, ​ 즉, @ConfigurationProperties("whiteship") @Component public class WhiteshipProperties { } 라고 클래스 위에 어노테이션을 명시할 수 없을 때, 메인 클래스에 와서 public class Application { @Bean @ConfigurationProperties("whiteship.. 2020. 3. 29.
[Spring Boot] 9 - YAML 사용법 Spring Boot 009 - YAML 사용하기 2.7 속성 대신 YAML 사용하기 YAML(야믈, 와이엠엘(.yml))은 JSON의 상위집합(superset)으로, 계층적 뼈대 구조를 설정하는데 편리한 형식(format)입니다. SpringApplication은 classpath에 있는 SnakeYAML library를 가지고 있을 때, 속성(properties)의 대안으로 자동적으로 YAML을 지원합니다. spring-boot-starter는 가장 기본적인 라이브러리고, 이것이 있으면 SnakeYAML 은 자동으로 제공됩니다. 2.7.1 Loading YAML YAML 리스트는 [index] 역참조형으로 표현될 수 있습니다. my: servers: - dev.example.com - another... 2020. 3. 29.
[Spring Boot] 7 SpringApplication 커스터마이징 Spring Boot 007 - SpringApplication 커스터마이징, Admin 1.7 웹 환경 SpringApplication 은 사용자 대신 ApplicationContext의 적절한 타입을 생성합니다. WebApplicationType은 다음 룰로 정해집니다. Spring MVC가 존재하면 AnnotationConfigServletWebServerApplicationContext를 사용 Spring MVC가 존재하지 않고, Spring WebFlux가 존재하면 AnnotationConfigReactiveWebServerApplicationContext 를 사용 그렇지 않으면, AnnotationConfigApplicationContext를 사용합니다. 예를 들어 Reactive 타입의 웹 .. 2020. 3. 26.
728x90