머리말
Control (IOC)의 역전은 커플 링을 해결하는 데 사용되며 주로 의존성 주입 및 종속성 조회의 두 가지 유형으로 나뉩니다.
종속성 주입은 프로그램에 프로그램에 있어야하는 종속성을 프로그램에 외부에 주입하는 것입니다. 물론, 그것은 또한 디자인 패턴의 개념이기도합니다.
인터페이스 a와 a의 구현 b가 있다고 가정하면이 코드는 a = new b ()로 실행됩니다. 현재 특정 의존성이 필연적으로 발생합니다. 그러나 인터페이스는 종속성을 해결하는 것으로 보이지만 커플 링은 여전히 그렇게합니다. 우리는 의존성 주입을 사용하여 분리를 달성 할 수 있습니다. IOC에서는 의존하려는 코드를 XML에 넣고 컨테이너를 통해 필요할 때이 종속성 관계를 형성 할 수 있습니다. 즉, 필요한 인터페이스 구현을 필요한 클래스에 주입하십시오. 이것은 "종속성 주입"이라는 용어의 출처 일 수 있습니다.
의존성 주입에 대한 간단한 이해
이제 Spring과 XML 관련 기술을 제쳐두고 지금 가장 쉬운 방법을 사용하여 종속성 주입을 구현할 수 있습니까? 이제 여전히 인터페이스 A와 A의 구현입니다.
따라서 우리의 목적은 다음과 같습니다. a = new b (); 이제 우리는 클래스 C를 정의하고 있으며 다음은 C와 A의 관계입니다. 새로운 것에 대한 C는 인터페이스에 대한 구현 클래스를 만듭니다.
공개 클래스 C {private a a; 공개 C (a a) {this.a = a; }}그래서 새로운 사용 방법? 클래스 D를 정의하고 d new b ()에서 c의 생성자를 호출하십시오. 그게
public class d {@test public void use () {c c = new c (new b ()); }}이런 식으로 A와 B 사이의 종속성이 없습니다. A의 구현 클래스를 변경하려면 D에서 구조 방법의 매개 변수를 직접 수정할 수 있습니다. 매우 간단하고 커플 링을 해결할 수 있습니다. 이 방법은 가장 일반적으로 생성자 주입으로 알려져 있습니다.
그런 다음 Spring은 IOC를 연결하고 사용하는 솔루션입니다. 스프링 의존성 주입의 가장 간단한 예는 다음과 같습니다.
SpringConfig.xml
<? xml 버전 = "1.0"alcoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans"xmlns : xsi = "http://ww.w.w3.org/2001/xmlschema-instance" xsi : schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id = "sayhello "> <constructor-arg ref ="hello "/bean"/bean "/bean"/bean ". /> < /beans>
분석 : 여기에는 두 개의 콩이 구성됩니다. 첫 번째는 생성자에 콩을 주입하는 것이고, 두 번째는 생성자에 주입되는 콩입니다.
안녕하세요 Java
패키지 미소;/*** 2016/4/21에 Smile에 의해 만들어졌습니다. */public class hello {public hello () {System.out.println ( "Hello"); } public void sayhello () {system.out.println ( "나는 인사하고 싶다"); }}Theinterface.java
스마일 패키지;/*** 2016/4/20에 Smile에 의해 만들어졌습니다. */public class thetestinterface {private Hello Hello; public thetestinterface (hello hello) {this.hello = hello; }}사용 .java
패키지 com.smile; import org.junit.test; import org.springframework.context.applicationcontext; import org.springframework.context.support.support.classpathxmlapplicationcontext; import smile.hello;/*** 2016/4/21. */public 클래스 사용 {@test public void usetest () {ApplicationContext context = new ClassPathXmlApplicationContext ( "SpringConfig.xml"); Hello Hello = (Hello) Context.getBean ( "Hello"); hello.sayhello (); }}요약
위는이 기사의 전체 내용입니다. 이 기사의 내용에 모든 사람의 연구 나 작업에 대한 특정 참조 가치가 있기를 바랍니다. 궁금한 점이 있으면 의사 소통을 위해 메시지를 남길 수 있습니다. Wulin.com을 지원 해주셔서 감사합니다.