Spring

    [Spring] properties 파일을 이용한 DI

    [Spring] properties 파일을 이용한 DI

    객체가 아닌 데이터를 파일로 관리할 순 없을까? Properties 파일에서 의존성 주입은 어떻게 할까? properties 파일 경로 지정 1. properties 파일 생성 service.prop1=10 service.prop2=10.5 service.prop3=false service.prop4=문자열 2. Root Web Application Context의 설정을 담당하는 xml에 properties파일의 경로를 지정한다. XML을 이용한 property 의존성 주입 Properties 값을 이용해 DI index : 생성자에 여러 매개변수가 있을 경우, 매개변수의 순서를 지정 value = ${propertiesKey} : property-placeholder에 있는 자료 중 key에 해당하는..

    [Spring] @Autowired, @Resource, @Inject의 차이

    [Spring] @Autowired, @Resource, @Inject의 차이

    어노테이션을 통한 의존성 주입(DI)는 어떻게 할까? @Resource, @Autowired, @Inject의 차이는 뭘까? 클래스간의 의존 관계를 주입할 때에는 주로 어노테이션 방식으로 의존성 주입을 하게 된다. 따라서 개발자가 가장 자주 사용하게 될 의존성 주입 방식은 어노테이션 방식의 의존성 주입이다. 의존성 주입에 관련된 어노테이션은 @Resource / @Autowired / @Inject가 있는데 차이는 뭘까? @Resource 스프링이 관리하는 빈 이름(Bean Name)으로 객체를 찾아 해당 빈을 주입한다. 이름으로 빈을 찾지 못하면 타입을 기준으로 의존성 주입을 진행한다. Setter, Field에 사용할 수 있지만 생성자에는 사용하지 못 한다. 인터페이스로 다형성을 적용한 구현체들 중 ..

    [Spring] XML을 이용한 DI

    [Spring] XML을 이용한 DI

    스프링에서 의존성 주입을 어떻게 할까? XML을 이용한 의존성 주입(DI)은 어떻게 할까? 의존성 주입은 어떻게 하는걸까? 스프링에서 의존성 주입(DI) 방법은 XML 설정을 통한 방법과 어노테이션을 이용한 방법이 있다. XML 설정을 통한 의존성 주입은 설정 파일에서 일괄적으로 의존성을 주입을 설정할 수 있기 때문에 주로 외부 라이브러리 클래스를 주입해야할 경우에 사용한다. 어노테이션을 통한 의존성 주입은 주로 클래스간에 의존 관계를 주입할 때 사용한다. XML 설정을 통한 의존성 주입 생성자를 이용한 주입 방법 김철수 lazy-init = "true" : 생성 지연, Bean 객체를 사용할 때 생성 (default : WAS에서 Context load시에 Bean 객체로 등록) : Class의 생성자..

    [Spring] 의존성과 의존성 주입 (Dependency & Dependency Injection)

    [Spring] 의존성과 의존성 주입 (Dependency & Dependency Injection)

    의존성이 무엇일까? 의존성을 어떻게 해결할까? 의존성 주입이 왜 필요할까? 지난 글을 통해 IoC 방식의 장점을 알아보았다. 이러한 스프링의 IoC 동작을 이해하려면 의존성과 의존성 주입의 개념 또한 알아야한다. 스프링은 DI, 의존성 주입이라는 핵심 기능을 통해 IoC 구조를 설계할 수 있게 해주고 있기 때문에 꼭 알아야하는 내용이다. 그래서 DI가 뭔데? 일단, 구글에 검색해보자. DI란 Dependency Injection의 줄임말로 한글로 번역하면 의존성 주입이라는 말이다. "의존성 주입"은 제어의 역행이 일어날 때 스프링이 내부에 있는 객체들간의 관계를 관리할 때 사용하는 기법이다. 의존성 주입은 말 그대로 의존적인 객체를 직접 생성하거나 제어하는 것이 아니라, 특정 객체에 필요한 객체를 외부에..

    [Spring] IoC 제어 방식 (Inversion of Control)

    [Spring] IoC 제어 방식 (Inversion of Control)

    IoC 제어 방식은 뭘까? 기존 제어 방식과의 차이점은 뭘까? IoC 제어 방식은 왜 좋을까? 스프링을 처음 접하게 되면 가장 먼저, 또 가장 많이 듣는 단어 중 하나가 IoC, 제어의 역전이다. 오늘은 스프링의 IoC 제어 방식에 대해 정리해보고자 한다. 우선, 구글이나 책을 통해 IoC에 대해 찾아보면 아래와 같이 나온다. IOC (Inversion of Control) 제어의 역전, 말 그대로 "제어권의 흐름이 역전"되는 것이다. 메서드나 객체의 호출 작업을 개발자가 결정하는 것이 아니라 외부에서 결정되는 것을 의미한다. Spring IOC controller에게 의존성을 위임하여 객체 간의 결합도를 줄이고 유연한 코드를 작성할 수 있게 한다. 가독성을 향상시키고 코드 중복을 최소화해 유지 보수성을..