序文
コントロールの反転(IOC)は、カップリングを解くために使用され、主に依存性噴射と依存性検索の2つのタイプに分割されます。
依存関係の注入は、プログラムに外部からプログラムにあるべき依存関係を注入することです。もちろん、それはデザインパターンの概念でもあります。
インターフェイスaとaの実装bがあると仮定すると、このコードはa = new b()を実行されます。現時点では、特定の依存関係が必然的に発生します。ただし、インターフェイスは依存関係を解決するように見えますが、そうすることでカップリングが発生します。依存関係噴射を使用してデカップリングを実現できます。 IOCでは、XMLに依存するコードを配置し、コンテナを介して必要なときにこの依存関係関係を形成します。つまり、必要なインターフェイスの実装を必要とするクラスに挿入できます。これは、「依存噴射」という用語の原因である可能性があります。
依存関係の注入の簡単な理解
それでは、今すぐ春とXML関連のテクノロジーを脇に置いてみましょう。依存関係注入を実装する最も簡単な方法をどのように使用できますか?今では、インターフェイスAとAの実装です。
したがって、私たちの目的はこのようなものです。A= new B();現在、クラスCを定義しています。以下はCとAの関係です。新しいCOをインターフェイスの実装クラスを作成します。
パブリッククラスC {プライベートA A; public c(a a){this.a = a; }}では、新しい使用方法は?クラスDを定義し、d new b()でCのコンストラクターを呼び出します。つまり
パブリッククラスd {@test public void use(){c c = new c(new b()); }}このようにして、CのAとBの間に依存関係はありません。Aの実装クラスを変更したい場合、建設方法のパラメーターをDのパラメーターを直接変更できます。これは非常に単純で、結合も解決します。この方法は、コンストラクター噴射として最も一般的に知られています。
次に、春はIOCの結合と使用の解決策です。スプリング依存関係の注入の最も簡単な例は次のとおりです。
springconfig.xml
<?xml version = "1.0" encoding = "utf-8"?> <beans xmlns = "http://www.springframework.org/schema/beans" xmlns:xsi = "http://www.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" /> < /beans>
分析:2つの豆がここで構成されています。 1つ目は、コンストラクターに豆を注入することであり、2つ目はコンストラクターに注入する豆です。
hello.java
パッケージスマイル;/*** 2016/4/21にSmileによって作成されました。 */public class hello {public hello(){system.out.println( "hello"); } public void sayshello(){system.out.println( "こんにちはと言いたい"); }}interface.java
パッケージスマイル;/*** 2016/4/20にSmileによって作成されました。 */public class thetestinterface {private hello hello; public thetestinterface(hello hello){this.hello = hello; }}use.java
パッケージcom.smile; import org.junit.test; Import org.springframework.context.applicationcontext; Import org.support.clasport.classpathxmlapplicationContext; 2016/4/21で作成されたSmile.hello;/*** Import smile.hello;/*** */public class use {@test public void usetest(){applicationContext Context = new ClassPathxMLApplicationContext( "SpringConfig.xml");こんにちはhello =(hello)context.getbean( "hello"); hello.sayhello(); }}要約します
上記は、この記事のコンテンツ全体です。この記事の内容には、すべての人の研究や仕事に特定の参照値があることを願っています。ご質問がある場合は、メッセージを残してコミュニケーションをとることができます。 wulin.comへのご支援ありがとうございます。