Spring自動組立の二義性例解析
この文章は主にSpring自動組立の二義事例解析を紹介しています。ここでは例示コードによって紹介された非常に詳細で、皆さんの学習や仕事に対して一定の参考学習価値があります。必要な友達は下記を参照してください。
1.Springの自動組立(@Autowired)でビームアプリケーションを構造パラメータと属性に注入できることを知っていますが、一つのbeanだけが必要な結果にマッチする場合、自動組立が有効になります。複数のbeanが同一の結果と整合すると,この曖昧性はSpringの自動組立特性を阻害し,パラメータまたは方法パラメータを構築する。
大きい話をしてください。もし私たちがデザートインターフェースを持っていたら、美味しい方法があります。このインターフェースを実現するには、Spring容器はビスケットを選んで組み立てます。しかし、ケーキのインターフェースを実現する時には、Springはどの種類を選んで組み立てるか分かりません。コードに!
(1)スライスのインターフェース
(5)ケーキ類の実現インターフェースをもう一つ追加する。
NoUnique BeanDefinitionExceptionの異常を報告しました。これは自動組立の曖昧性です。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
1.Springの自動組立(@Autowired)でビームアプリケーションを構造パラメータと属性に注入できることを知っていますが、一つのbeanだけが必要な結果にマッチする場合、自動組立が有効になります。複数のbeanが同一の結果と整合すると,この曖昧性はSpringの自動組立特性を阻害し,パラメータまたは方法パラメータを構築する。
大きい話をしてください。もし私たちがデザートインターフェースを持っていたら、美味しい方法があります。このインターフェースを実現するには、Spring容器はビスケットを選んで組み立てます。しかし、ケーキのインターフェースを実現する時には、Springはどの種類を選んで組み立てるか分かりません。コードに!
(1)スライスのインターフェース
package jinjin;
/**
*
* @author oubai
*
*/
public interface Dessert {
public void good();
}
(2)ビスケットがあります。このインターフェースを実現します。
package jinjin;
import org.springframework.stereotype.Component;
/**
* @author oubai
*
*/
@Component
public class Cookies implements Dessert{
@Override
public void good() {
System.out.println(" !");
}
}
(3)テストクラスは、@Autowiredを使って自動組立されます。
package jinjin;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* @author oubai
*
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=ConfigTest.class)
public class CommTest {
@Autowired
private Dessert dessert;
@Test
public void test(){
dessert.good();
}
}
(4)java配置類
package jinjin;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
/**
* @author oubai
* java
*/
@Configuration
@ComponentScan
public class ConfigTest {
}
実行結果(5)ケーキ類の実現インターフェースをもう一つ追加する。
package jinjin;
import org.springframework.stereotype.Component;
/**
* @author oubai
*
*/
@Component
public class Cake implements Dessert {
@Override
public void good() {
System.out.println(" !");
}
}
(6)運転を継続して結果を見るNoUnique BeanDefinitionExceptionの異常を報告しました。これは自動組立の曖昧性です。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。