Spring Core
[Spring] 스프링 빈(Bean) 등록 방법
fiat_lux
2024. 5. 30. 16:44
이글은 Spring Bean 등록 하는 방법을 설명하는 글 이다
이거에 앞서 Spring Bean을 알고 싶으면 아래 글을 참고 하면 된다
https://hyeonni.tistory.com/65
[Spring] 스프링 빈(Bean) 이란?
이글은 Spring Bean을 설명하는 글이다 이거에 앞서 Java Bean을 알고 싶으면 아래 글을 참고 하면 된다https://hyeonni.tistory.com/61 [Spring] Java Bean? Spring Bean?이글은 Spring Bean을 설명하기에 앞서 Java Bean이
hyeonni.tistory.com
Spring Bean 등록
- xml에 등록
- 자바 설정
- 어노테이션
ex) Player.java
package com.example;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class Player {
private String name;
private int age;
}
1. XML 설정 파일을 통한 빈 등록
- applicationContext.xml 파일에서 빈을 정의 한다
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 빈 정의 -->
<bean id="player" class="com.example.Player">
<property name="name" value="value1" />
<property name="age" value="value2" />
</bean>
</beans>
2. 자바 설정 파일을 통한 빈 등록
- 자바 설정 파일을 사용하여 빈 등록을 한다 (AppConfig)
- @Configuration과 @Bean을 사용하여 자바 클래스에서 빈을 정의합니다.
- 타입 안전성을 보장하고, 코드 기반 설정을 선호하는 경우 유용하다
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
@Bean
public Player player() {
Player player = new Player();
player.setProperty1("value1");
player.setProperty2("value2");
return player;
}
}
3. 어노테이션을 통한 빈 등록
- 스프링 어노테이션을 사용하여 빈 등록한다
- @Component, @Service, @Repository, @Controller 등을 사용하여 클래스 자체에 빈을 정의하고
- @ComponentScan을 통해 패키지를 스캔합니다.
- 설정을 간결하게 유지하고, 클래스 선언과 설정을 함께 관리할 수 있다
Player.java
package com.example;
import lombok.Getter;
import lombok.Setter;
import org.springframework.stereotype.Component;
@Getter
@Setter
@Component
public class Player {
private String name;
private int age;
}
스프링 설정 클래스 (AppConfig.class)
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan(basePackages = "com.example")
public class AppConfig {
// 빈 스캔을 통해 자동으로 빈을 등록 한다
}
등록한 후에 사용법
- 빈을 등록한 후 애플리케이션에서 빈을 가져와 사용할 수 있다
Main.java
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class Main {
public static void main(String[] args) {
// 자바 설정을 사용하는 경우
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
// XML 설정을 사용하는 경우
// ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
// 빈 가져오기
Player player = context.getBean(Player.class);
//비즈니스 로직....
}
}