본문 바로가기

Spring

(4)
의존성 주입(Dependency Injection) 3가지 방법, @Autowired 란? 스프링에는 다양한 의존주입 방법이 있습니다. 대표적으로 생성자 주입, setter 주입, 필드 주입 이렇게 3가지가 있습니다. 1. 생성자 주입 스프링 컨테이너가 올라오고 어플리케이션이 setting이 되는 시점에 생성자 주입을 통해 한번만 호출되는 것이 보장되어 '불변, 필수' 의존관계에서 사용됩니다. 대부분의 의존관계 주입은 한번 설정이 되고 나면 의존관계를 변경할 일이 없습니다. 2. setter 주입 set이 public하게 노출이 될 경우 setter가 실행되어 변경될수있는 문제점이 있습니다. 하지만, 변경 가능성이 있는 의존관계에서는 사용할 필요가 있습니다. 3. 필드 주입 필드에 @Autowired 어노테이션을 붙이는 방법입니다. 중간에 외부에서 변경이 불가능하기 때문에 테스트하기 힘들다는 ..
ApplicationContext와 다양한 빈 설정 방법 BeanFactory 스프링 빈 컨테이너의 최상위 인터페이스입니다. Bean을 생성하고 의존성 주입을 지원하는 간단한 컨테이너입니다. 1. Bean 생성 2. 라이프사이클 관리 ApplicationContext BeanFactory를 상속한 형태로 BeanFactory 보다 익숙해보입니다. BeanFactory를 상속했기때문에 최상위 인터페이스의 모든 기능을 가지고 있습니다. 트랜잭션 관리, AOP 처리, DI, IoC 를 지원합니다. BeanFactory와의 가장 큰 차이점은 컨테이너가 구동되는 시점에 객체들을 미리 생성하는 Pre-Loading 방식으로 보입니다. Bean 등록 방법 이러한 Bean 들을 생성하고 의존성을 관리해줄려면 우선 IoC 컨테이너에 Bean을 등록해줘야 합니다. 1. Bean..
IoC 컨테이너와 빈 학습목표 IoC 컨테이너란? 빈이란? 스프링 IoC 컨테이너 IoC란 Inversion of Control 으로 Spring에서 나온 용어가 아닙니다. IoC는 프로그램의 제어권을 누가 가져갈것인지에 대한 프로그래밍 패턴이다. 스프링 프레임워크에서의 IoC는 프로그램의 제어권을 프레임워크가 제어하기 때문에, 객체를 생성하고 관계를 설정하는 객체의 관리 역할이 개발자로부터 스프링 컨테이너에게 역전된다는 뜻으로 사용된다. 스프링이 제공하는 IoC 컨테이너를 사용하는 이유는 여러 장점이 있기 때문이다. 먼저 좋은 객체 지향 프로그래밍이란 역할과 구현을 나누는 것이다. 즉, 구현체에 의존하지말고 역할에 의존해야 하는것이다. 역할과 구현을 분리함으로써, 구현 대상의 내부 구조를 알 필요가 없고, 구현 대상 자체를..
[스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술] 후기 현재 SSAFY에서 Spring Framework로 웹 MVC 를 공부하고 있습니다. 스프링 프레임워크로 웹 어플리케이션을 개발하면서 DataSource, Session Factory, Transaction Manager 등등 설정을 하면서 간단한 웹 프로젝트를 개발하려는데 이러한 프로젝트 셋팅을 하는데 너무 많은 시간이 걸린다고 느꼈습니다. 실제로 금요일에도 과제를 제출하려는데 mapper 설정을 잘못해주는 바람에 에러를 잡느라 2시간을 소요했습니다ㅎㅎ 저는 수업시간외에도 추가적으로 스프링에 대해 궁금증이 생겨 이 강의를 수강하게 되었습니다. 강의 소개서에 있는 스프링 학습을 포기하는 이유에 나오듯이 IoC, DI, AOP 와 같은 이론적인 내용보다도 스프링이 저런 기술을 통해 무엇을 이루고자 했는지가..