スプリング入門(xmlを使用してbean注入)


springは反転を制御し、面に向かう容器フレーム制御反転IOCです.プログラム自体は対象の作成を担当していません.外部容器からメンテナンスを作成し、注入に依存するのは一つの実現形態です.
beanの容器:beanfactoryは構造と基本機能を提供し、初期化beanをロードします.Contectはbeanオブジェクトを保存します.Webは一般的にConttext Loader ListenerまたはConttext Loader Servletでcontextを獲得します.
 ApplicationContext context = new FileSystemXmlApplicationContext("classpath*:spring-ioc.xml");//     
        InjectionService oneInterface = (InjectionService) context.getBean("injectionService");//       bean
beanは注入を設定します.beanのメソッド属性を初期化します.
id="injectionService" class="Interface.InjectionServiceImp">
       <property name="injectionDAO" ref="injectionDAO">property>
   
    id="injectionDAO" class="Interface.InjectionDAOImpl">
bean構造注入:beanに伝わる構造方法のパラメータ.
<bean id="injectionService" class="Interface.InjectionServiceImp">
       <constructor-arg name="injectionDAO" ref="injectionDAO">constructor-arg>
    bean>
    <bean id="injectionDAO" class="Interface.InjectionDAOImpl">bean>
ビーンの自動組立:No,byname,byType,Costructor byname:まずヘッドフィールドの中にdefault-autwireを設置して、そして同じxmlファイルの下にbean:aの名前ともう一つのbean:bの属性名とタイプが同じである場合(実はset Property()です.中のPropertyフィールドは同じです.Propertyの頭文字が大文字であれば、Bean aのidヘッダフィールドは小文字でもいいですが、一般的にはIDEに属性のgetterとsetterを自動的に設定させますので、管理しないでください.(反射機構でmethodを得て、methodのサフィックスでbeanIDにマッチすると推測されています.)bytype:基本的なプロセスは上記の通りですが、classによって組み立てられたCostruction:コンスの中のクラスのタイプによってマッチングされます.
beanの配置項目:id、class、scope、constructor-arg、property、autwiring/lazy-nitialization mode、initialization/destruction method.
bean役割ドメイン:singleton単一の例(単一の容器では、同一のcontextにおいて一時的に理解される)、prototypeは新しいインスタンスを作成するように要求するたびに、requestはrequestの中で有効であり、sessionである.
ライフサイクル:定義、初期化、使用、廃棄.具体的なあるbean初期化の方法について:1.initbeanインターフェースがafterpropertySetをカバーする方法を実現する.2.init-methodを配置します.廃棄の方法1.disposalbeanを実現し、destroy 2を上書きします.destroy-methodグローバルデフォルトの初期化と廃棄を設定する方法:ヘッダファイルbeanにdefault-init-methodとdefault destroy-methodを入れて、3つの初期化と廃棄の方法があれば、グローバルは実行しません.インターフェースは先に実行します.グローバルデフォルトの初期化と廃棄声明があれば、クラスにはmethodが存在しなくてもエラーはありません.
Awareインターフェース:awareインターフェースでspringリソースを取得できます.
Resource:resourceは、aplication Contact.getsResource(「アドレス」)から取得したもので、いくつかの経路を除いてアドレスを取得しても直接ファイル名を入力することができます.ファイルのパスプレフィックスは、現在のAppliation Contextのファイルパスプレフィックスに等しいです.
異なるprojectシステムに従って経路を得る方法:classipath*:現在のプロジェクトの相対パスFileSystemPath:ファイルの絶対パスServlet Contact Path:Servletの相対パスに基づいてここで提示してください.classipathのデフォルトパスはsourceファイルと定義されているフォルダの下のファイルです.classipath:あなたのクラスパスの中でファイルを探すだけです.classipath*:classパスだけでなく、jarファイル(classパス)で検索します.
Application Contectの問題:Appplication Contectはbeanをロードして、resourceを獲得してspring資源を獲得して、bean容器を一つの実体と見なすなら、それはContectを容器に対するI/O類とすることができますか?