Springの容器


Springには2つのコアのインターフェースがあります.BeanFactoryとApplication Contact textのうち、Appplication ContectはBenFactoryのサブインターフェースです.BenFactoryはスプリング容器の最も基本的なインターフェースです.
Spring容器はビーンのインスタンスを生成する工場であり、マネージャの中のビーンです.
BeanはSpring容器管理の基本単位であり、SpringベースのJavaEEアプリケーションでは、すべてのコンポーネントがBeanとして扱われ、データソース、HibernateのSession Factory、事務マネージャなどが含まれる.
BeanはSpring容器の中で動作し、Spring容器の存在を感じなくても、Bean属性の注入、協力者の注入、依存関係の注入などを含むSpring依存注入を受けることができます.
Spring容器は、各Benの実装クラスを正確に知ることができる必要がありますので、Springプロファイルは、Benのインスタンスの実装クラスを正確に構成しなければなりません.
ビーンFactoryは、ビーンとビーンの間の依存関係を管理するための配置、作成、管理を担当しています.
1.bootlean containsBean(String name):Spring容器がidを含むかどうかを判断するビーンの例
2.T getBeam(Class<T>requiredType):Spring容器の中でrequiredTypeタイプに属する唯一のBeanの例を取得する.
3.Object getBen(String name):容器に戻るidがnameであるBeanの例
4.T getBen(String name,class requiredType):容器に戻るidはname、そしてタイプはrequiredTypeのBeanです.
5.クラスgetType(String name):容器に戻ってビーンのインスタンスを指定するタイプ
BenFactoryは一般的な実現クラスorg.springframe ebook.beans.factory.xml.XMLBenFactory類があります.
Apple ContectはBeanFactoryのサブインターフェースです.
よく使う実現類FileSystemXmlAppliation Contect、Class PathXml Appliation Contectと
AnnotationfigApple Comptext
webアプリケーションでSpring容器を使うと、Xml WebAppliation Controtext、AnnotationConfigWebAppliation Comptextがあります.
Spring容器を作成する場合は、レスポンスポートを通してxmlプロファイルに入る必要があります.
//        beans.xml    Resource  
InputStreamResource isr = new FileSystemResource("bean.xml");
// Resource      ,  BeanFactory  
XmlBeanFactory factory = new XmlBeanFactory(isr);

  
//       ,        beans.xml    Resource  
ClassPathResource res = new ClassPathResource("beans.xml");
// Resource     ,  BeanFactory  
XmlBeanFactory factory = new XmlBeanFactory(res);
アプリケーションに複数の属性構成ファイルがある場合は、BenFactoryのサブインターフェースAppplication Contactを用いてBenFactoryのインスタンスを作成するべきである.Application Comptextは通常次のような実装クラスを使用します.
FileSystemXmlAppliation Contect   ファイルシステムに基づくXMLプロファイルでAppplication Contectの例を作成します.
Class pathXml Apple Comptext クラスローディングパス下のXMLプロファイルでAppplication Contectの例を作成します.
//  CLASSPATH  , CLASSPATH    applicationContext.xml
//bean.xml  service.xml    ApplicationContext
ApplicationContext appContext = new ClassPathXmlApplicationContext(new String[]{"bean.xml","service.xml"});
//       bean.xml  service.xml    ApplicationContext
ApplicationContext appContext = new FileSystemXmlApplicationContext(new String[]{"bean.xml","service.xml"});
必要があれば、Apple ContectのインスタンスをBenFactory変数に割り当てることもできます.
Springプロファイルのルート要素は、0から複数のサブ要素を受け入れることができ、各サブ要素は、ビームの一例を構成する.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Spring        ,  spring-beans-3.0.xsd     -->
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<pre name="code" class="html"><?xml version="1.0" encoding="GBK"?>
<!--  Spring     DTD  -->
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
	"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<!-- Spring          -->
<beans>
	...
<beans/> 
xmlns="http://www.springframework.org/schema/beans"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsd" ... -->