의존성 주입(DI)
DI는 외부에 종속성을 제공하여 개체가 필요한 종속성을 갖도록 하는 디자인 패턴입니다.
이렇게 하면 개체 간의 결합 정도가 줄어들어 개발자의 유연성이 향상됩니다.
예를 들어 클래스가 다른 클래스의 함수를 사용하는 경우 DI를 사용하여 필요한 클래스의 개체를 주입할 수 있습니다.
제어 역전(IoC)
IoC는 제어 전환을 의미합니다. 전통적인 프로그래밍에서는 프로그래머가 프로그램 흐름을 제어하지만 IoC에서는 프레임워크가 프로그램 흐름을 제어합니다. 이를 통해 개발자는 프레임워크에서 제공하는 기능을 사용하여 개발할 수 있으므로 개발 생산성이 향상됩니다.
콩
Bean은 Spring 프레임워크에서 사용되며 Spring 컨테이너가 관리하는 객체를 가리킨다.
Bean은 변수, 메소드, 생성자 및 초기화 메소드를 가질 수 있습니다.
Bean은 Spring Framework에서 DI 및 IoC를 구현하는 데 사용됩니다.
예
공개 인터페이스 MessageService {
void sendMessage(문자열 메시지, 문자열 수신자);
}공개 클래스 EmailService는 MessageService {를 구현합니다.
@덮어쓰기
공개 무효 sendMessage(문자열 메시지, 문자열 수신자) {
System.out.println(“” + 수신자 + “에게 보낸 이메일 with message=” + message);
}
}공개 클래스 SMSService는 MessageService를 구현합니다. {
@덮어쓰기
공개 무효 sendMessage(문자열 메시지, 문자열 수신자) {
System.out.println(“” + 수신자 + “에게 보낸 SMS = message=” + message);
}
}공개 클래스 MyApplication {
개인 MessageService 서비스;공개 MyApplication(MessageService SVC) {
this.서비스 = svc;
}공개 무효 sendMessage(문자열 메시지, 문자열 수신자) {
this.service.sendMessage(메시지, 수신자);
}
}공개 클래스 메인 {
공개 정적 무효 메인(String() args) {
MessageService 이메일 = new EmailService();
MyApplication 앱 = new MyApplication(이메일);
app.sendMessage(“안녕하세요”, “존”);MessageService sms = 새 SMSService();
app = 새로운 MyApplication(sms);
app.sendMessage(“안녕하세요”, “제인”);
}
}
세 가지 인터페이스 메시지 서비스, 이메일 서비스, SMS 서비스그리고 클래스 내 응용 프로그램정의됩니다.
메시지 서비스 인터페이스는 문자 보내 방법을 정의합니다. 이메일 서비스 수업과 SMS 서비스 클래스는 이 인터페이스를 구현하여 메시지를 보내는 기능을 구현합니다.
내 응용 프로그램 수업은 메시지 서비스 인터페이스를 구현하는 객체는 생성자를 통해 삽입됩니다. 생성자에 삽입된 객체 사용 문자 보내 메서드를 호출하여 메시지를 보낼 수 있습니다.
주로 클래스 이메일 서비스 개체 및 SMS 서비스 객체를 생성하여 내 응용 프로그램 개체를 만듭니다. 이런 이유로 이메일 서비스그리고 SMS 서비스 개체를 사용하여 메시지를 보낼 수 있습니다.
그건 내 응용 프로그램 수업 유연성을 높입니다. 종속성 주입을 통해 개발자는 이를 수행할 수 있습니다. 내 응용 프로그램 수업에서 사용하는 메시지 전송 서비스에 대한 제한이 줄어듭니다.
따라서 개발자는 변경 사항이 있을 때 코드를 쉽게 변경할 수 있습니다.
이것은 명백히 개발 생산성을 증가시킵니다.

