본문 바로가기
Spring

SPRING BOOT- .properties에서 값 가져오기

by 치범 2022. 2. 2.

1. key- value형태로 properties에 값 등록하기

chibumps.name = chibumps
chibumps.age= 20

 

2. properties와 매핑 해줄 class 정의 하기 

이때, class를 bean에 등록해주고 @ConfigurationProperties(prefix=key값)으로 annotation을 등록 해야한다. 

package cho.springboot;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties("chibumps")
public class Chibumps {
    private String name;
    private String age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
}

 

추가적으로 @ConfigurationProperties를 이용하기 위해서 다음의 의존성을 등록 해야한다.

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
</dependency>

 

이와 관련된 자세한 내용은 다음 링크에서 확인하면 된다.

https://docs.spring.io/spring-boot/docs/2.6.3/reference/html/configuration-metadata.html#configuration-metadata.annotation-processor 

 

Configuration Metadata

Configuration metadata files are located inside jars under META-INF/spring-configuration-metadata.json. They use a JSON format with items categorized under either “groups” or “properties” and additional values hints categorized under "hints", as sh

docs.spring.io

 

3. Class에서 @Autowired해서 값을 사용하기

package cho.springboot;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;

@Component
public class SampleRunner implements ApplicationRunner {

    @Autowired
    Chibumps chibumps;

    public void run(ApplicationArguments args) throws Exception {
        System.out.println("===================");
        System.out.println("Name:"+chibumps.getName());
        System.out.println("Age:"+chibumps.getAge());
        System.out.println("===================");
    }
}

 

4. 실행 결과

댓글