-
[Spring] 스프링 빈(Bean) 등록 방법Spring Core 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); //비즈니스 로직.... } }
'Spring Core' 카테고리의 다른 글
[Spring] DI 의존성 주입 (0) 2024.07.02 [Spring] IOC 제어의 역전 (0) 2024.07.01 [Spring] 스프링 빈(Bean) 이란? (0) 2024.05.30 [Spring] Java Bean? Spring Bean? (1) 2024.05.28 SOLID 원칙 (0) 2024.04.30