티스토리 뷰

반응형

Spring 에서 어노테이션을 이용한 설정이 불가능한 경우 주로 xml파일을 이용해서 환경설정을 해줍니다.

아래는 xml을 이용해서 직접 bean을 등록해준 예시입니다.

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource" /> 
</bean>

하지만 @Configuration@Bean 어노테이션을 사용하면 xml에 위와 같이 선언해주지 않아도 환경설정이 가능합니다!

사용방법

@Configuration

  • 애플리케이션 컨텍스트(빈 팩토리)가 사용할 설정정보라는 표시를 해주는 어노테이션.
import org.springframework.context.annotation.Configuration; 

@Configuration 
public class SampleConfig { 

}

이렇게 Class위에 @Configuration 만 붙여주면 Spring은 해당 클래스가 설정을 담당하는 클래스라고 인식합니다.

@Configuration 만 사용한다면 전달할 오브젝트가 없기 때문에 오브젝트를 생성하고 초기화해서 전달하기 위해 @Bean 어노테이션을 사용합니다.

import org.springframework.context.annotation.Configuration; 
import oug.springframework.context.annotation.Bean; 

@Configuration 
public class SampleConfig { 

    @Bean 
    public SqlSessionFactory sqlSessionFactory() { 
        SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); 
        factoryBean.setDataSource(dataSource()); 
        return factoryBean.getObject(); 
    } 
}

그렇다면 @Value 는 언제 사용할까요?

저는 여기저기에서 여러번 사용되지만 변경될 가능성이 있는 값들을 한번에 관리하기 위해 사용합니다.

그런 값들을 /src/main/resources/application.properties에 선언했다고 가정합니다.

url = 127.0.0.1 
test = 테스트값

이렇게 선언한 값을 내부 코드에서 가져다 쓸때 사용하는게 @Value 입니다.

아래와 같이 @PropertySource로 프로퍼티의 위치를 선언해주고, 원하는 값을 ${}를 이용해서 가져온 후, 원하는 변수에 넣고 사용합니다.

@PropertySource("classpath:application.properties") 
public class TestValue { 
    @Value("${url}") 
    private String host; 

    @Value("${test}") 
    private String test; 
}
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함