프로그래밍
[Spring] 어노테이션 장점과 @Autowired 이용한 DI
Spring을 사용시 다양한 어노테이션을 지원한다. 그 중 Spring을 이용한 DI를 편리하게 설정하는 어노테이션도 지원하는데 그게 바로 @Autowired 이다. 기존 DI의 결합도를 낮추기 위해 인터페이스를 호출하고 해당 구현체들의 클래스를 어떤 구분 값으로 외부 설정 파일(XML,TXT 등)을 통해 Class를 바꿔끼워주었다. setting.txt com.study.di.A1 FileinputStream fis = new FileinputStream("/com/study/di/setting.txt") String className = fis.readLine(); A a = Class.forName(className) Spring에서도 ApplicationContext 객체를 통해 외부 Xml에서 ..
[Spring] DI 지시서 작성 (Spring Bean Configuration)
생성자 DI, Setter DI 클래스간 결합 방식들 중 생성자와 setter 방식이 있다. 1. 생성자 방식 생성자 주입은 생성자의 호출 시점에 1회 호출 되는 것이 보장된다. 그렇기 때문에 주입받은 객체가 변하지 않거나, 반드시 객체의 주입이 필요한 경우에 강제하기 위해 사용할 수 있다. (Spring에서는 생성자 주입 방식을 권장, 지원함) ExamConsole 클래스에서 Exam이라는 객체를 필요로 할 때 ExamConsle 인스턴스 생성시 Exam 객체를 주입해주는 방식이다. Exam exam = new exam(); ExamConsole = new ExamConsole(exam); 2. setter 방식 ExamConsole 인스턴스 생성후 setter 메서드를 통해 exam 객체를 주입해주는..
클래스의 생성자
생성자? 인스턴스화 한 오브젝트인 class() 생성자로 인스턴스를 생성하는 명령어 class name =new class() 를 실행할 때 클래스를 접근하게 되면서 사용하게 된다. 이 때 생성자 메소드를 호출하면서 클래스는 힙 영역에 할당되고 자동으로 초기화를 시켜준다. 결국 생성자는 클래스를 힙 영역에 할당하고 초기화를 해주는 작업을 하는 메소드이다. 생성자는 보통 기본 생성자와 필드 생성자로 나뉜다. 기본 생성자 클래스가 호출될 때 가장 먼저 생성자를 확인하는데 생성자를 명시하지 않았으면 자동으로 생성되어 클래스를 초기화 작업을 수행하게 되는데 이 때 컴파일은 클래스 구성 요소들을 차례대로 읽어 초기화를 수행한다. 생성자를 명시하지않고 자동으로 호출할 경우 인스턴스에 필요한 요소들을 읽어 초기화 작..