Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- awsconsole
- 3tierarchitecture
- port닫기
- anymatch메서드
- route53
- 열려있는포트
- enum
- instance생성
- string_agg()
- Java
- AWS
- enumtype
- db
- 널포인터에러
- 지옥같은git
- listnull
- lightsail
- Spring
- Annotation
- 리스트중복값
- wordpress블로그
- 중복제거
- 권한정책
- PostgreSQL
- WordPress
- 리스트중복제거
- stereotypeannotation
- conponent
- mybatis
- ansible
Archives
- Today
- Total
Anyway
[Spring] @Configuration 본문
[@Configuration Annotation 사용하기]
@Configuration 어노테이션은 Spring Boot에서 설정 클래스를 정의할 때 사용된다.
이 어노테이션이 붙은 클래스는 Spring의 IoC 컨테이너에서 Bean 정의를 위한 설정 정보로 사용된다. 즉, 애플리케이션의 환경 설정을 지정하거나 애플리케이션이 실행될 때 필요한 특정 Bean을 생성할 때 활용된다.
1. @Configuration 어노테이션의 역할
- Bean 정의
@Configuration이 붙은 클래스는 Bean 어노테이션을 사용하여 스프링 Bean을 정의한다. 이 Bean들은 Spring IoC 컨테이너에 의해 관리되며 필요할 때 주입(DI)된다. - 환경 설정
특정 환경에 맞게 애플리케이션의 설정을 구성하는 데 사용된다. 예를 들어 데이터베이스 연결, 외부 서비스와의 통신 설정 등을 이 클래스에서 설정할 수 있다.
2. @Configuration의 사용 예시
```java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import javax.sql.DataSource;
@Configuration
public class DataSourceConfig {
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/mydb");
dataSource.setUsername("username");
dataSource.setPassword("password");
return dataSource;
}
}
```
3. 동작 방식
- @Configuration 어노테이션이 붙은 클래스는 Spring이 애플리케이션 컨텍스트를 초기화할 때 해당 클래스를 설정 클래스로 인식한다.
- @Bean 어노테이션이 붙은 메서드가 반화하는 객체는 Spring 컨테이너에 의해 관리되며 다른 Bean에서 의존성 주입(DI)으로 사용될 수 있다.
4. @Configuration을 사용할 때 고려해야 할 사항
- Bean의 scope :
기본적으로 @Configuration 클래스에서 정의된 Bean은 싱글톤으로 관리된다. 즉, 한 번 생성된 빈은 Spring 컨테이너 내에서 동일한 인스턴스를 공유한다. - 중복 정의 방지 :
@Configuration 클래스는 여러 번 로드되어도 한 번만 로드된 것처럼 동작하여 중복 정의를 방지한다. Spring은 이를 위해 @Configuration 클래스의 CGLIB 프록시를 사용하여 빈이 중복 생성되지 않도록 관리한다. - Bean 간의 의존성 관리 :
@Configuration 클래스 내부에서 정의된 Bean들이 서로 의존성을 가지는 경우 해당 의존성은 메서드 호출을 통해 처리할 수 있다. Spring은 이를 자동으로 처리하여 올바른 순서로 Bean을 초기화한다.
[정리]
@Configuration 어노테이션은 Spring 애플리케이션에서 설정 클래스를 정의하는 데 사용된다.
이 어노테이션이 붙은 클래스는 Bean을 정의하고 환경 설정을 지정하는 데 사용되며, 이 클래스 내부의 @Bean 메서드를 통해 Spring 컨테이너가 관리하는 객체를 생성할 수 있다.
이러한 설정 클래스를 통해 애플리케이션이 실행될 때 필요한 다양한 설정과 Bean을 정의할 수 있다.
'Java > Spring' 카테고리의 다른 글
[Spring] @RequestBody 사용하기 (0) | 2024.08.28 |
---|---|
[Spring] 정적 팩토리 메서드 패턴 (0) | 2024.08.27 |
[Spring] @Builder 패턴 사용하기 (0) | 2024.08.27 |
[Mybatis] <trim> 동적 쿼리 사용하기 (0) | 2024.08.26 |
[Spring] @RequestMapping이란? - Annotation (0) | 2024.08.22 |