티스토리 뷰
반응형
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;
}
반응형
'Web' 카테고리의 다른 글
IntelliJ에서 Tomcat 재배포 없이 자동반영하기 (0) | 2020.04.21 |
---|---|
@RequestMapping, @GetMapping, @PostMapping , @DeleteMapping, @PutMapping, @PatchMapping (0) | 2020.03.05 |
4-2. AWS RDS 구축하기 (0) | 2019.01.28 |
4-1. AWS EC2 구축하기 (0) | 2019.01.28 |
3. SpringBoot-Handlebars로 화면 만들기 (1) | 2019.01.10 |
댓글