Spring 4詳細シリーズ(二)組立Bean
3451 ワード
1.Springは3種類のbeanを組み立てる方法を提供します.
Springコンテナは、アプリケーション内のBeanを作成し、DIによってオブジェクト間の関係を調整します.Springは主に3つの主要な組立メカニズムを提供しています. XMLにおける表示構成 Javaでの表示構成 暗黙的なBeanの発見メカニズムと自動アセンブリ 2.自動組立Bean
Springは2つの角度から自動化組立を実現する:コンポーネントスキャン(Spring自動検出アプリケーションのコンテキストに必要な作成Bean)、 自動組立(SpringはBean間の依存を自動的に満たす) コンポーネントスキャンパッケージの構成(コンポーネントスキャン) Javaクラスでコンポーネントスキャン@ComponentScan(「com.test.controller」) を構成 XMLプロファイル構成コンポーネントスキャン 検出可能なBeanの作成
コンポーネントスキャンのBeanの名前と自動構成
3.JavaコードでBeanを組み立てる
4.XMLによるBeanのアセンブリ
Spring低バージョンでは、XMLでDTDベースの構成方式を採用しており、Spring 4.0コンフィギュレーションのアップグレード後はSchemaベースのコンフィギュレーション方式で、アップグレードは後方互換性がありますが、後者は私たちの第一選択のXMLコンフィギュレーション方式です.基本的なSchemaベースのXML構成テンプレートは次のとおりです. xmlns="http://www.springframework.org/schema/beans「デフォルトネーミングスペース xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance「カスタムネーミングスペース、 xsiは略称xsi:schemaLocationはネーミングスペースに対応するschemaファイル である.
実際のプロジェクトでは、通常、組み合わせて使用します.
①暗黙的なBean発見メカニズムとJavaでの組立てを行う②暗黙的なBean発見メカニズムとXML構成を組み合わせる
Springプロジェクトの構成を容易にする
Springコンテナは、アプリケーション内のBeanを作成し、DIによってオブジェクト間の関係を調整します.Springは主に3つの主要な組立メカニズムを提供しています.
Springは2つの角度から自動化組立を実現する:
@Component
public class A{
private boolean abc() {
System.out.println(" ...");
}
}
@Component
public class B{
@Autowired
private A a;
private boolean bcd() {
a.abc();
}
}
コンポーネントスキャンのBeanの名前と自動構成
@Configuration
//
//@ComponentScan(basePackages= {"com.b.dao","com.c.dao"})
//@ComponentScan(basePackageClasses= {A.class,B.class})
@ComponentScan(basePackages= "com.a.dao")
public class Spring4Test {
// ,
@Autowired
private InsideTest insideTest;
@Inject
private InsideTest_ insideTest_;
}
/**
* :Spring @Named @Component ,
* , 。
*/
@Component("insideTest")
class InsideTest{
// @Component("insideTest")
}
@Named("insideTest_")
class InsideTest_{
// @Named("insideTest_")
}
3.JavaコードでBeanを組み立てる
//
@Configuration
public class Spring4Test {
@Bean
public AookTest aook(){
return new AookTest();
}
@Bean
public BookTest book(){
return new BookTest(aook());
}
}
// AookTest
class AookTest{
public void month() {
System.out.println(" ...");
}
}
// BookTest
class BookTest{
private AookTest aookTest;
public BookTest(AookTest aook) {
this.aookTest = aook;
}
public void mainTest() {
aookTest.month();
}
}
// CookTest
class CookTest{
public static void main(String[] args) {
AnnotationConfigApplicationContext annot =
new AnnotationConfigApplicationContext(Spring4Test.class);
BookTest bean = annot.getBean(BookTest.class);
bean.mainTest();
}
}
4.XMLによるBeanのアセンブリ
Spring低バージョンでは、XMLでDTDベースの構成方式を採用しており、Spring 4.0コンフィギュレーションのアップグレード後はSchemaベースのコンフィギュレーション方式で、アップグレードは後方互換性がありますが、後者は私たちの第一選択のXMLコンフィギュレーション方式です.基本的なSchemaベースのXML構成テンプレートは次のとおりです.
実際のプロジェクトでは、通常、組み合わせて使用します.
①暗黙的なBean発見メカニズムとJavaでの組立てを行う②暗黙的なBean発見メカニズムとXML構成を組み合わせる
Springプロジェクトの構成を容易にする