ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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] IOC 제어의 역전  (0) 2024.07.01
    [Spring] 스프링 빈(Bean) 이란?  (0) 2024.05.30
    [Spring] Java Bean? Spring Bean?  (0) 2024.05.28
    SOLID 원칙  (0) 2024.04.30
Designed by Tistory.