분류 전체보기

@Autowired @Autowired란 이름 그대로 자동으로 의존 관계를 연결(주입) 시켜주는 어노테이션입니다. @ComponentScan을 사용하는 경우, 의존관계에 대한 설정을 해주기 위해 사용합니다. 필요한 객체의 "타입"에 해당하는 빈을 찾아서 자동으로 주입시켜줍니다. 의존관계 자동 주입 의존관계를 주입하는 방법에는 다음과 같은 3가지 방법이 있습니다. 생성자 주입 수정자 주입 (Setter 주입) 필드 주입 생성자 주입 생성자를 통해서 의존관계를 주입받는 방법입니다. 특징 생성자 호출시점에 단 1회만 호출되는 것이 보장됩니다. 불변, 필수 의존관계에 사용합니다. @Component public class OrderServiceImpl implements OrderService { private..
@ComponentScan @ComponentScan은 @Component 및 @Service, @Repository, @Controller, @Configuration등과 같이 @Component가 붙어있는 Class들을 자동으로 Scan하여 스프링 Bean으로 등록해주는 역할을 수행합니다. @Component는 클래스에 사용되며, 빈으로 등록될 때에는 클래스명을 사용하여 등록합니다. 이때, 클래스의 맨 앞글자만 소문자로 바꿔서 저장합니다. 만약 Member 클래스의 경우에는 Bean으로 등록되는 경우 member로 등록되는 것입니다. @ComponentScan의 범위 기본 값으로는 @ComponenetScan이 사용된 패키지를 시작 위치로 하여, 해당 패키지와 하위 디렉토리를 모두 탐색합니다. 만약 ..
@Configuration @Configuration은 스프링 설정 클래스를 선언하는 애노테이션입니다. 해당 애노테이션을 사용함으로써, 스프링 빈과 관련된 설정 클래스임을 명시하는 기능과 동시에 추가적인 기능을 하나 더 가지고 있습니다. 바로 싱글톤과 관련된 기능입니다. @Configuration과 싱글톤 @Configuration public class AppConfig { @Bean public MemberService memberService() { //스프링 빈에 등록될때는 기본적으로 메서드 이름으로 등록 return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService() { return new Or..
싱글톤 싱글톤 패턴은 어떤 클래스의 인스턴스가 오직 하나만 생성되는 것을 보장하며, 이 인스턴스에 접근할 수 있는 전역적인 접촉점을 제공하는 패턴입니다. 싱글톤을 구현하는 여러가지 방법이 있는데, 하나하나 살펴보도록 하겠습니다. 1. Eager Initialization (이른 초기화, Thread - safe) Eager Initialization은 가장 간단한 형태의 싱글톤 구현 방법입니다. public class Singleton { private static final Singleton instance = new Singleton();//클래스 로딩 시점에 생성 private Singleton(){} //private 생성자로 외부 클래스로부터 인스턴스가 생성되는것을 차단한다. public sta..
스프링 컨테이너 스프링 컨테이너는 빈의 생명 주기를 관리하는 역할을 수행합니다. 종류로는 BeanFactory, ApplicationContext등이 있으며, 대부분의 경우 ApplicationContext를 의미합니다. BeanFactory 스프링 빈을 관리하고 조회하는 역할을 담당합니다. getBean()등의 기능을 제공합니다. ApplicationContext 일방적으로 스프링 컨테이너라 부릅니다. ApplicationContext는 BeanFactory의 하위 인터페이스이며, 여러 구현체가 존재합니다. 다음과 같은 기능을 제공합니다. 메시지소스를 활용한 국제화 기능 - 예를 들어서 한국에서 들어오면 한국어로, 영어권에서 들어오면 영어로 출력합니다. 환경변수 - 로컬, 개발, 운영등을 구분해서 처리..
의존관계 "A가 B를 의존한다" 위의 뜻은 의존의 대상인 B가 변경된다면, 해당 변경의 영향이 A에도 영향을 미친다는 것을 의미합니다. 아래 예시를 보며 자세히 이해해보겠습니다. public class Barista { private IceVanillaLatteRecipe iceVanillaLatteRecipe; public Barista() { iceVanillaLatteRecipe = new IceVanillaLatteRecipe(); } } 위의 코드는 다음과 같이 표현할 수 있습니다. "바리스타는 아이스 바닐라 라떼 레시피의 의존한다." 의존관계가 발생하는 상황 A가 B를 의존하는 상황은 다음과 같습니다. B가 A의 필드 B가 A 메서드의 파라미터 B가 A의 로컬 변수 B로 메세지를 보냄 의존관계..
우선 스프링의 탄생 배경을 알아보겠습니다. EJB(Enterprise Java Bean) EJB를 검색해보면 다음과 같이 설명합니다. 엔터프라이즈 자바빈즈(Enterprise JavaBeans; EJB)는 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. 즉, EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. 엔터프라이즈 자바빈즈 - 위키백과, 우리 모두의 백과사전 엔터프라이즈 자바빈즈(Enterprise JavaBeans; EJB)는 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. 즉, EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. EJB 사 ko.wikipedia.org EJB에서 JB에 해당하는 Java Bean이란 자바 객체를 ..
말 랑
'분류 전체보기' 카테고리의 글 목록 (170 Page)