@Value
@Value 어노테이션은 스프링 프레임워크에서 제공하는 어노테이션 중 하나로, 주로 프로퍼티 값을 주입받는 데 사용돤다.
이 어노테이션을 사용하는 이유와 주요 기능은 다음과 같다.주요 기능
- 외부 설정 값 주입
@Value 어노테이션을 사용하여 외부 설정 파일(properties 파일)이나 환경 변수에서 값을 읽어와 스프링 빈에 주입할 수 있다.
이를 통해 설정 값을 코드에서 직접 사용할 수 있다.
- 프로퍼티 파일 연동
스프링의 프로퍼티 파일 (application.properties 또는 application.yml)에 정의된 값을 런타임 시점에 빈에 주입할 수 있다.
예를 들어, 데이터베이스 연결 정보, 외부 서비스의 URL 등을 프로퍼티 파일에 정의하고 @Value 어노테이션을 사용하여 해당 값을 필드에 주입받을 수 있다.
- 타입 변환
@Value 어노테이션을 사용하면 스프링이 자동으로 설정 값을 필드의 타입으로 변환해 준다.
예를 들어, 문자열로 정의된 값을 정수형으로 변환할 수 있다.
- 기본 값 설정
@Value 어노테이션을 사용할 때, 해당하는 설정 값이 없는 경우 기본 값을 지정할 수 있다. 이는 @Value("${some.property:default-value}") 형태로 사용할 수 있다.
사용 이유
- 외부 환경과의 분리
설정 값들을 코드에서 직접 하드코딩하는 것이 아니라 외부 설정 파일에 분리하여 관리할 수 있다. 이는 유지보수성과 환경에 따른 설정 변경이 용이하도록 한다.
- 유연성
@Value 어노테이션을 사용하면 다양한 방식으로 설정 값을 주입받을 수 있어, 환경에 따라 동적으로 설정을 변경할 수 있는 유연성을 제공한다.
- 간편한 사용
스프링의 IoC 컨테이너가 자동으로 값들을 주입해주기 때문에, 별도의 코드 작성 없이 간편하게 설정 값을 사용할 수 있다.
코드 :
//Controller @Value("${atk}") private int atk; //application.properties att = 100;