목록Programming/Spring (19)
프로그래밍 공부
☕ POJO vs. 스프링 빈 vs. EJB 비교 정리자바 개발에서 객체를 관리하는 방식에는 POJO, 스프링 빈, EJB 등이 있다.1️⃣ POJO (Plain Old Java Object)POJO란?POJO는 특정 프레임워크나 환경에 종속되지 않는 일반적인 자바 객체.단순한 클래스로, 어떠한 어노테이션이나 인터페이스도 필요하지 않음.✅ POJO의 특징특정 프레임워크에 종속되지 않음단순한 getter/setter 메서드를 가질 수 있음Spring, JPA, Hibernate, MyBatis 등과 독립적으로 사용 가능재사용성이 높고, 테스트가 용이함✅ POJO 예제public class User { private String name; private int age; public User(..
스프링 컨테이너(Spring Container)는 스프링 프레임워크의 핵심 개념 중 하나로, 객체(Bean)의 생성, 관리, 소멸을 담당하는 역할을 합니다. 이를 통해 개발자는 객체의 생성과 관계 설정을 직접 처리하지 않고, 스프링이 이를 대신 관리하도록 할 수 있다🌱 스프링 컨테이너(Spring Container)란?스프링 컨테이너는 스프링의 IoC(Inversion of Control) 기능을 제공하는 핵심 요소이다. 컨테이너는 개발자가 직접 객체를 생성하지 않고, 스프링이 객체의 라이프사이클을 관리하도록 위임하는 역할을 함/🏗️ 스프링 컨테이너의 주요 기능객체(Bean) 생성 및 관리개발자가 직접 객체를 생성하지 않고, 스프링이 객체를 자동으로 생성하여 관리합.의존성 주입(DI, Dependen..
@Component와 @Bean은 스프링에서 빈(Bean)을 등록하는 방법이지만, 사용 방식과 목적이 다르다.1. @Component✅ 클래스 수준에서 사용하며, 자동으로 빈을 등록할 때 활용✅ @ComponentScan을 통해 해당 패키지 내의 클래스를 자동 감지하여 빈으로 등록📌 사용 예시import org.springframework.stereotype.Component;@Component // MyService가 자동으로 빈으로 등록됨public class MyService { public void sayHello() { System.out.println("Hello from MyService!"); }}📌 @ComponentScan 설정import org.spring..
context.getBean(MyService.class)와 같이 클래스 타입으로 빈을 가져올 때, 같은 타입의 빈이 여러 개 등록되어 있다면 스프링은 어떤 빈을 반환해야 할지 몰라 NoUniqueBeanDefinitionException을 발생시킨다.이를 해결하는 방법은 여러 가지가 있다.1. @Primary 사용가장 기본적인 해결책은 @Primary 애너테이션을 사용하여 우선순위를 지정하는 방법.import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class AppConfig { @Bean @Primary /..
1. 빈(Bean) 설정 방법① @Configuration과 @Bean을 활용한 Java Config 설정@Configuration: 설정 클래스를 정의하는 데 사용됨.@Bean: 스프링 컨테이너가 관리하는 빈을 등록하는 데 사용됨.import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class AppConfig { @Bean public MyService myService() { return new MyService(); }}② @ComponentScan을 이용한 자동 빈 등록@Component..
Java Spring 및 Bean 설정 방법 정리1. Spring Framework 개요IoC(Inversion of Control): 객체 생성/관리를 프레임워크가 담당DI(Dependency Injection): 객체 간 의존 관계를 설정하는 기술2. Spring Bean 이란?Spring 컨테이너가 관리하는 Java 객체애플리케이션의 핵심 구성 요소3. Bean 설정 방법 3가지3.1 XML 기반 설정 (전통적 방식) 장점: 중앙 집중식 관리, 설정 변경 용이단점: 타입 안정성 부족, 대규모 프로젝트에서 복잡성 증가3.2 Annotation 기반 설정@Componentpublic class UserServiceImpl implements UserService { ..